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 :

probleme avec un TopLevel


Sujet :

Tkinter Python

  1. #1
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut probleme avec un TopLevel
    bonjour tout le monde déjà je suis nouveau sur le forum alor voici mon probleme:
    j'ai crée un petit programme pour m'amusé et pour apprendre les boite de saisie,message
    crée un compte a rebourg ect...
    mais quand j'execute mon programme avec idle (touche F5) mon programme marche très bien
    et quand je l'ance directement mon fichier depuis l'explorateur windows ma fenêtre TopLevel ne safiche pas
    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
    import Tkinter
    from Tkinter import *
    import time
    import tkMessageBox as Msg
    import random
    import tkSimpleDialog as Saisie
    def pirater():
          question = Msg.askquestion(title="question",message="Vous etes sur le point de pirater la base de donnee de la N.A.S.A voullez vous continuer ?")
          if question == 'yes':
              t=Tkinter.Toplevel()
              #Mise en place du titre:
              t.title("piratage de la N.A.S.A")
              t.geometry("200x100")
              #Mise de l'icone en haut a gauche de la fenetre :
              t.iconbitmap("py.ico")
              t.grab_set()
              t.focus_set()
              Cadre=Tkinter.Frame(t)
              Cadre.pack()
              piraterok=Tkinter.Label(Cadre, text="La base de donnee de la N.A.S.A est \n en train d'etre pirater veuillez patientez!", fg="black")
              piraterok.pack(side=Tkinter.TOP)
     
              ilreste = Tkinter.Label(Cadre, text="Il reste :", fg="black")
              ilreste.pack(side=Tkinter.LEFT)
              temp = random.randint(1, 60)#choisie un nombre entre 1 et 50
              while (temp > 0): # (n'oubliez pas le double point !)
                       afichetemp = Tkinter.Label(Cadre, text=temp, fg="black")
                       segondes = Tkinter.Label(Cadre, text="segondes", fg="black")
                       afichetemp.pack(side=Tkinter.LEFT)
                       segondes.pack(side=Tkinter.LEFT)
                       print temp
                       temp = temp - 1 # (n'oubliez pas l'indentation !)
                       time.sleep(1)
                       afichetemp.forget()
                       segondes.forget()
              if (temp == 0):
                  t.destroy()
                  info = Msg.showinfo(title="info",message="Le piratage de la base de donnee de la N.A.S.A a bien ete pirater !")
          if (question == 'no'):
              racine.destroy()
     
    racine=Tkinter.Tk()
    racine.geometry("400x300")
    #Mise en place du titre:
    racine.title("teste de toute les boite a message !")
    #Mise de l'icone en haut a gauche de la fenetre :
    racine.iconbitmap("py.ico")
    #entrer le bon mot de pass :
    chaine= Saisie.askstring(title="acces reserver", prompt="entrez le mot de passe :")
    p = "no"
    while (p != "yes"):
        if (chaine != "tim123"):#ou tim123 est le mot de pass!
            chaine= Saisie.askstring(title="acces reserver", prompt="entrez le mot de passe :")
        else:
            p = "yes"
     
    bouton_pirater =Tkinter.Button(racine, text="Pirater", command=pirater)
    bouton_pirater.pack()
     
    quitter=Tkinter.Button(racine, text="Quitter", command=racine.destroy)
    quitter.pack()
    racine.mainloop()
    comment réglé le probleme ?
    timiti29
    ps même en compilant en exe avec py2exe sa fait pareille

  2. #2
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut probleme avec un TopLevel
    bonjour j'ai essayer mon code ligne par ligne et ses a partir de la boucle qu'il y a un problème
    et si je mais t.mainloop() par exemple avant if (temp == 0):
    les label s'affiche après le compte a rebourg
    donc ou je doit metre mon t.mainloop()?
    timiti29

  3. #3
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,
    D'après mes connaissances très limitées en python,il faudrait pas plûtot faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if __name__ == "__main__":
         racine.mainloop()
    ?

    Ce qui te donnerait dans ton code :
    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
     
    import Tkinter
    from Tkinter import *
    import time
    import tkMessageBox as Msg
    import random
    import tkSimpleDialog as Saisie
    def pirater():
          question = Msg.askquestion(title="question",message="Vous etes sur le point de pirater la base de donnee de la N.A.S.A voullez vous continuer ?")
          if question == 'yes':
              t=Tkinter.Toplevel()
              #Mise en place du titre:
              t.title("piratage de la N.A.S.A")
              t.geometry("200x100")
              #Mise de l'icone en haut a gauche de la fenetre :
              t.iconbitmap("py.ico")
              t.grab_set()
              t.focus_set()
              Cadre=Tkinter.Frame(t)
              Cadre.pack()
              piraterok=Tkinter.Label(Cadre, text="La base de donnee de la N.A.S.A est \n en train d'etre pirater veuillez patientez!", fg="black")
              piraterok.pack(side=Tkinter.TOP)
     
              ilreste = Tkinter.Label(Cadre, text="Il reste :", fg="black")
              ilreste.pack(side=Tkinter.LEFT)
              temp = random.randint(1, 60)#choisie un nombre entre 1 et 50
              while (temp > 0): # (n'oubliez pas le double point !)
                       afichetemp = Tkinter.Label(Cadre, text=temp, fg="black")
                       segondes = Tkinter.Label(Cadre, text="segondes", fg="black")
                       afichetemp.pack(side=Tkinter.LEFT)
                       segondes.pack(side=Tkinter.LEFT)
                       print temp
                       temp = temp - 1 # (n'oubliez pas l'indentation !)
                       time.sleep(1)
                       afichetemp.forget()
                       segondes.forget()
              if (temp == 0):
                  t.destroy()
                  info = Msg.showinfo(title="info",message="Le piratage de la base de donnee de la N.A.S.A a bien ete pirater !")
          if (question == 'no'):
              racine.destroy()
     
    racine=Tkinter.Tk()
    racine.geometry("400x300")
    #Mise en place du titre:
    racine.title("teste de toute les boite a message !")
    #Mise de l'icone en haut a gauche de la fenetre :
    racine.iconbitmap("py.ico")
    #entrer le bon mot de pass :
    chaine= Saisie.askstring(title="acces reserver", prompt="entrez le mot de passe :")
    p = "no"
    while (p != "yes"):
        if (chaine != "tim123"):#ou tim123 est le mot de pass!
            chaine= Saisie.askstring(title="acces reserver", prompt="entrez le mot de passe :")
        else:
            p = "yes"
     
    bouton_pirater =Tkinter.Button(racine, text="Pirater", command=pirater)
    bouton_pirater.pack()
     
    quitter=Tkinter.Button(racine, text="Quitter", command=racine.destroy)
    quitter.pack()
    if __name__ == "__main__":
        racine.mainloop()
    En espérant t'avoir aidé

  4. #4
    Membre confirmé Avatar de timiti29
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    sa marche pas quand je l'execute !!!
    la fenêtre Toplevel est blanche !!!
    parcontre quand je lance avec idle (F5) sous windows sa marche !!!
    ses quoi le probleme ?
    timiti29

  5. #5
    Membre Expert 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
    Par défaut
    Bonsoir,

    Petit coup de pouce avec un début de réponse timiti29 (et je laisse ton code tel quel pour que tu trouve les autres erreurs).

    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
    import Tkinter
    from Tkinter import *
    import time
    import tkMessageBox as Msg
    import random
    import tkSimpleDialog as Saisie
     
    def pirater():
        question = Msg.askquestion(title="question",message="Vous etes sur le point de pirater la base de donnee de la N.A.S.A voullez vous continuer ?")
        if question == 'yes':
            t=Tkinter.Toplevel()
            t.title("piratage de la N.A.S.A")
            t.geometry("%dx%d+%d+%d" % (200,100, (racine.winfo_screenwidth()-200)/2, (racine.winfo_screenheight()-100)/2 ) )
            # t.iconbitmap("py.ico")
            t.grab_set()
            t.focus_set()
            Cadre=Tkinter.Frame(t)
            Cadre.pack()
            piraterok=Tkinter.Label(Cadre, text="La base de donnee de la N.A.S.A est \n en train d'etre pirater veuillez patientez!", fg="black")
            piraterok.pack(side=Tkinter.TOP)
            ilreste = Tkinter.Label(Cadre, text="Il reste :", fg="black")
            ilreste.pack(side=Tkinter.LEFT)
            temp = random.randint(1, 60)#choisie un nombre entre 1 et 50
            while (temp > 0): # (n'oubliez pas le double point !)
                afichetemp = Tkinter.Label(Cadre, text=temp, fg="black")
                segondes = Tkinter.Label(Cadre, text="segondes", fg="black")
                afichetemp.pack(side=Tkinter.LEFT)
                segondes.pack(side=Tkinter.LEFT)
                print temp
                temp = temp - 1 # (n'oubliez pas l'indentation !)
                time.sleep(1)
                afichetemp.forget()
                segondes.forget()
            if (temp == 0):
                t.destroy()
                info = Msg.showinfo(title="Clean",message="Le piratage de la base de donnee de la N.A.S.A a bien ete pirater !")
        if (question == 'no'):
            racine.destroy()
     
    racine=Tkinter.Tk()
    racine.geometry("%dx%d+%d+%d" % (400,300, (racine.winfo_screenwidth()-400)/2, (racine.winfo_screenheight()-300)/2 ) )
    racine.title("teste de toute les boite a message !")
    #racine.iconbitmap("py.ico")
    racine.withdraw()
    chaine= Saisie.askstring(title="Private Access", prompt="\n Password please :\n") 
    bouton_pirater =Tkinter.Button(racine, text="Delete database", command=pirater)
    bouton_pirater.pack()
    quitter=Tkinter.Button(racine, text="Quit", command=racine.destroy)
    quitter.pack()
    p = "no"
    while (p != "yes"):
        if (chaine != "tim123"):
            chaine= Saisie.askstring(title="Private Access", prompt="\n Password please :\n")
        else:
            p = "yes"
            racine.deiconify()
     
    if __name__ == "__main__":
        racine.mainloop()
    Tkinter c'est bien, c'est graphique, etc... Mais apprendre les bases de python c'est mieux.

    @+

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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