IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Commander l'ouverture d'une fenêtre


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Commander l'ouverture d'une fenêtre
    Bonjour,
    J'ai un problème concernant mon programme, pour l'ouverture d'une fenêtre en cliquant sur un bouton.
    En cliquant sur le bouton 'Ok' Je devrais avoir une seconde fenêtre qui s'ouvre (nommée fencompte), or, quand je lance mon programme, les 2 fenêtre s'affichent en même temps et le bouton 'Ok' disparaît. Cependant si je ne mets pas de commande, le bouton est affiché. Quelqu'un aurait-il une idée de comment régler ce problème? J'ai essayé de chercher sur le forum mais n'ai rien trouvé qui ressemble à mon écriture en python...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    from Tkinter import *
    from os import chdir
    chdir("/Users/Public/Documents/Projet")
     
     
    def creeruncompte():
        fencompte = Tk() #doit-on créer une parent?#
     
        champ_label = Label(fencompte, text="Créer un compte").grid(row =0, column =1)
     
        fencompte.title("Gestionnaire de favoris")
        fencompte.geometry("400x100+10+10")
     
        champ_label2 = Label(fencompte, text="Votre nom d'utilisateur :").grid(row =2, column =0)
     
        cadrenomutil = Entry(fencompte)
        cadrenomutil.grid(row =2, column =1)
     
        champ_label3 = Label(fencompte, text="Votre mot de passe :").grid(row =4, column =0)
     
        cadrevmdp = Entry(fencompte)
        cadrevmdp.grid(row =4, column =1)
     
        bouton_annuler = Button(fencompte, text="Annuler", command=fencompte.destroy)
        bouton_annuler.grid(row =6, column =6)
     
        champ_labelvide = Label(fencompte, text="  ").grid(row =6, column =5)
     
        champ_labelvide2 = Label(fencompte, text=" ").grid(row =6, column =3)
     
        bouton_creer = Button(fencompte, text="Créer", command=fencompte.destroy)
        bouton_creer.grid(row =6, column =4)
     
        fencompte.mainloop()
     
     
    fenparent = Tk() #Créer la fenêtre racine de l'interface de classe Tk#
     
    champ_label = Label(fenparent, text="Se connecter") #label (fenetre, ligne de texte)#
    champ_label.grid(row =0, column =1) #afficher le label dans la fenêtre, ligne = row et colonne = columne#
     
    fenparent.title("Gestionnaire de favoris") #titre de la fenêtre#
    fenparent.geometry("350x100+10+10") #dimensions width(largeur)xheight(hauteur)+x+y#
     
    champ_label2 = Label(fenparent, text="Nom d'utilisateur :").grid(row =2, column =0)
     
    cadrenomuti = Entry(fenparent)
    cadrenomuti.grid(row =2, column =1)
     
    champ_label3 = Label(fenparent, text="Mot de passe :").grid(row =4, column =0)
     
    cadremdp = Entry(fenparent)
    cadremdp.grid(row =4, column =1)
     
    bouton_quitter = Button(fenparent, text="Annuler", command=fenparent.destroy) #défini le bouton dans fenparent, tete affiché et commande associée au clic gauche#
    bouton_quitter.grid(row =6, column =6)
     
    champ_labelvide = Label(fenparent, text=" ").grid(row =6, column =5)
     
    champ_labelvide2 = Label(fenparent, text=" ").grid(row =6, column =3)
     
    bouton_ok = Button(fenparent, text="OK", command=creeruncompte())
    bouton_ok.grid(row =6, column =4)
     
     
    fenparent.mainloop() #démarrer la boucle Tkinter qui s'arrête quand on ferme la fenêtre#
    P.S.: J'ai aussi essayé de mettre command='creeruncompte' en espérant que le programme pourrait me lire le fichier depuis son nom, comme ils sont rangés dans le même dossier, mais rien ne se passe.

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Pour créer une seconde fenêtre vous devez utiliser un Toplevel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    def creeruncompte():
        fencompte = Toplevel(master=fenparent) #doit-on créer une parent?#
     
        champ_label = Label(fencompte, text="Créer un compte").grid(row =0, column =1)
     
        fencompte.title("Gestionnaire de favoris")
        fencompte.geometry("400x100+10+10")
     
        champ_label2 = Label(fencompte, text="Votre nom d'utilisateur :").grid(row =2, column =0)
     
        cadrenomutil = Entry(fencompte)
        cadrenomutil.grid(row =2, column =1)
     
        champ_label3 = Label(fencompte, text="Votre mot de passe :").grid(row =4, column =0)
     
        cadrevmdp = Entry(fencompte)
        cadrevmdp.grid(row =4, column =1)
     
        bouton_annuler = Button(fencompte, text="Annuler", command=fencompte.destroy)
        bouton_annuler.grid(row =6, column =6)
     
        champ_labelvide = Label(fencompte, text="  ").grid(row =6, column =5)
     
        champ_labelvide2 = Label(fencompte, text=" ").grid(row =6, column =3)
     
        bouton_creer = Button(fencompte, text="Créer", command=fencompte.destroy)
        bouton_creer.grid(row =6, column =4)
     
     
     
    fenparent = Tk() #Créer la fenêtre racine de l'interface de classe Tk#
     
    champ_label = Label(fenparent, text="Se connecter") #label (fenetre, ligne de texte)#
    champ_label.grid(row =0, column =1) #afficher le label dans la fenêtre, ligne = row et colonne = columne#
     
    fenparent.title("Gestionnaire de favoris") #titre de la fenêtre#
    fenparent.geometry("350x100+10+10") #dimensions width(largeur)xheight(hauteur)+x+y#
     
    champ_label2 = Label(fenparent, text="Nom d'utilisateur :").grid(row =2, column =0)
     
    cadrenomuti = Entry(fenparent)
    cadrenomuti.grid(row =2, column =1)
     
    champ_label3 = Label(fenparent, text="Mot de passe :").grid(row =4, column =0)
     
    cadremdp = Entry(fenparent)
    cadremdp.grid(row =4, column =1)
     
    bouton_quitter = Button(fenparent, text="Annuler", command=fenparent.destroy) #défini le bouton dans fenparent, tete affiché et commande associée au clic gauche#
    bouton_quitter.grid(row =6, column =6)
     
    champ_labelvide = Label(fenparent, text=" ").grid(row =6, column =5)
     
    champ_labelvide2 = Label(fenparent, text=" ").grid(row =6, column =3)
     
    bouton_ok = Button(fenparent, text="OK", command=creeruncompte)
    bouton_ok.grid(row =6, column =4)
     
     
    fenparent.mainloop()
    Pour ce qui est du lancement de la fonction cela viens des parenthèses dans command=creeruncompte()

    @+

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Re
    Ah très bien ça marche beaucoup mieux, merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter l'ouverture d'une fenêtre
    Par Matt2094 dans le forum Delphi
    Réponses: 9
    Dernier message: 30/08/2006, 12h48
  2. Réponses: 12
    Dernier message: 06/06/2006, 12h13
  3. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 15h21
  4. Ouverture d'une fenêtre ms-dos malgré l'utilisation de .pyw
    Par Ank dans le forum Général Python
    Réponses: 2
    Dernier message: 21/10/2005, 14h33
  5. [HTTPS] ouverture d'une fenêtre
    Par Boosters dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/01/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo