Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ouvrir dans une autre fenêtre

    18 mai 2013 à 16:49:01

    Bonjour à tous, voila j'ai fait ce programme ci-dessous
    from Tkinter import *
    import sys
    import tkMessageBox
    
    
    class MenuPrincipal () :
    
    
    	def __init__ (self, boss = None):
    		self.fenetre_menu = Tk()
    		self.fenetre_menu.title(".:: akinator ::.")
    		self.fenetre_menu.protocol("WM_DELETE_WINDOW", quitter) # h?h?, ca controle la fermeture de la fenetre  via le X en haut a droite...
    		self.fenetre_menu.resizable(width=False, height=False)
    
    		self.msg1 = Label(self.fenetre_menu, text="\nBienvenue dans akinator ! \n", font='arial 12 bold')
    		self.msg1.grid(column=1, row=1, columnspan=2)
    
    		self.msg7 = Label(self.fenetre_menu, text="")
    		self.msg7.grid(column=1, row=6)
    
    		self.bouton_jouer = Button(self.fenetre_menu, text = "Jouer!", font = 'arial 16 italic', padx = 30, pady = 10, relief='groove', borderwidth = 4, command = self.jeu)
    		self.bouton_jouer.grid(column=1, row=7, columnspan=2)
    
    		self.msg6 = Label(self.fenetre_menu, text="")
    		self.msg6.grid(column=1, row=8)
    
    		self.bouton_aide = Button(self.fenetre_menu, text = "  Aide  ", relief= 'groove', command = self.aide)
    		self.bouton_aide.grid(row=9, column=1, sticky='w', padx= 7, pady = 1)
    
    		self.bouton_version = Button(self.fenetre_menu, text = "Version", relief= 'groove', command = self.version)
    		self.bouton_version.grid(row=10, column=1, sticky='w', padx= 7, pady = 1)
    
    		self.bouton_quit = Button(self.fenetre_menu, text= 'Quitter', relief= 'groove', command = quitter)
    		self.bouton_quit.grid(column=1, row=12, columnspan=2, pady = 5)
    
    
    		self.fenetre_menu.mainloop()
    
    	def aide (self):
    		try:
    			self.fenetre_version.destroy()
    		except:
    			pass
    
    		try:
    			self.fenetre_aide.destroy()
    		except:
    			pass
    
    		try:
    			self.fenetre_option.destroy()
    		except:
    			pass
    
    		self.fenetre_aide = Toplevel()
    		self.fenetre_aide.title("Aide - akinator")
    		self.fenetre_aide.resizable(width=False, height=False)
    
    		message1 = Label(self.fenetre_aide, text='Instructions de jeu:', font='arial 16')
    		message1.pack()
    
    		message2 = Label(self.fenetre_aide, text='\nBut du jeu:', font='arial 12 underline')
    		message2.pack()
    		message3 = Label(self.fenetre_aide, text='''	Le but de jeu est simple, pensez ? une personne de la classe et \
    		\n r?pondez correctement au question qu'akinator vous pose''')
    		message3.pack()
    		message4 = Label(self.fenetre_aide, text='\nComment jouer ?', font='arial 12 underline')
    		message4.pack()
    		message5 = Label(self.fenetre_aide, text='cliquez sur jouer et laissez-vous guider')
    		message5.pack()
    
    		bouton_quit = Button(self.fenetre_aide, text= 'Quitter', relief= 'ridge', command=self.fenetre_aide.destroy)
    		bouton_quit.pack(side='bottom', pady=5)
    
    	def version(self):
    		try:
    			self.fenetre_version.destroy()
    		except:
    			pass
    
    		try:
    			self.fenetre_aide.destroy()
    		except:
    			pass
    
    		try:
    			self.fenetre_option.destroy()
    		except:
    			pass
    
    		self.fenetre_version = Toplevel()
    		self.fenetre_version.title("Version - akinator")
    		self.fenetre_version.resizable(width=False, height=False)
    
    		message0 = Label(self.fenetre_version, text='akinator: Informations - Version', font= 'arial 16')
    		message0.grid(column=0, row=0, columnspan = 2, pady = 5, padx=10)
    		message1 = Label(self.fenetre_version, text='\n - Codeur: PRUHOMME Dylan et CHIRIS Antoine')
    		message1.grid(column=1, row=1, sticky = W)
    		message2 = Label(self.fenetre_version, text=' - Version: 1.0 (23/01/2013)')
    		message2.grid(column=1, row=2, sticky = W)
    		message3 = Label(self.fenetre_version, text=' - Release: 23/01/2013\n\n')
    		message3.grid(column=1, row=3, sticky = W)
    		message4 = Label(self.fenetre_version, text=' - Pour tout contact, bug ou suggestion:	antoinechiris@gmail.com')
    		message4.grid(column=1, row=4, sticky = W)
    		message5 = Label(self.fenetre_version, text='', font='arial 11')
    		message5.grid(column=1, row=5, columnspan = 2)
    
    		bouton_quit = Button(self.fenetre_version, text= 'Quitter', relief= 'ridge', command=self.fenetre_version.destroy)
    		bouton_quit.grid(column=1, row=6, columnspan = 2, pady = 5)
    
    
    	def jeu (self):
    
                bou10=Button(text='QUITTER',width=8,command=quit)
                bou10.grid(row=10, column=3)
    
    
                Texte=StringVar()
                LabelQuestion1=Label(textvariable=Texte,fg='red',bg='white')
                LabelQuestion1.grid(row=1, column=2)
    
                def fille():
                    Texte.set ('la personne est Maelle')
    
                def garcon():
                    Texte.set ('repondez aux autres questions')
    
                Texte.set("Est-ce un garcon ou une fille ?")
                bou0=Button(text="garcon", command=garcon)
                bou1=Button(text="fille", command=fille)
    
    
                bou0.grid(row=1, column=3)
                bou1.grid(row=2, column=3)
    
    
    
    class Jeu (Frame):
    	def __init__(self, boss = None):
    		Frame.__init__(self)
    		self.master.title(".Akinator.")
    		self.master.protocol("WM_DELETE_WINDOW", quitter)
    		self.master.resizable(width=False, height=False)
    
    
    		self.barre_menu = MenuBar(self)
    		self.barre_menu.grid(row=1, column=1, sticky=W)
    
    		self.interface = Panneau(self)
    		self.interface.grid(row=2, column=1)
    
    def quitter ():
    	if MenuPrincipal.var_quit == '0':
    		if tkMessageBox.askokcancel("Quitter", "ATTENTION, vous allez quitter, en ?tes-vous s?r ?"):
    			sys.exit ()
    	else:
    		sys.exit ()
    
    
    if __name__ == '__main__':
    	MenuPrincipal()
    Ma question est, quand je clique sur jouer :
     
    ça me donne ceci :
    donc un mélange entre le menu et le jeu... Ce que j'aimerai c'est donc ouvrir la partie jeu dans une autre fenêtre, mais je ne sais pas comment on fait, Pourriez-vous m'aider svp ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 mai 2013 à 16:58:25

      Utilise le mot clé Toplevel tkinter sur google.

      Sinon ton code est largement simplifiable, on peut diviser par 3 le nombre de lignes.

      Bonne continuation...

      • Partager sur Facebook
      • Partager sur Twitter
        18 mai 2013 à 17:06:41

        slt, merci de ta réponse, j'ai regardé ce que tu m'as dit, d'ailleurs il y'en a un dans mon programme (de toplevel) mais je n'arrive pas à le placer en fait :/

        Je suis un gros débutant :/

        -
        Edité par A.Chichi 18 mai 2013 à 17:16:10

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 mai 2013 à 17:17:40

          "Je suis un gros débutant"

          Eh oui apprendre python avant Tcl/Tk ça peut aider.

          "j'ai regardé ce que tu m'as dit, mais je ne vois pas ou je peux le mettre..."

          Déjà, t'es rapide :)

          Voici un exemple simple

          from Tkinter import *
          
          def turn():
              t = Toplevel(root)
              Label(t, text='Je suis ouvert!!!').pack()
          
          root = Tk()
          
          b = Button(root, text='push me', command=turn)
          b.pack()
          
          root.mainloop()



          • Partager sur Facebook
          • Partager sur Twitter
            18 mai 2013 à 17:22:34

            :p

            c'est ce que j'avais vu, en fait c'est peut être tout bête mais je ne vois pas ou le placer

            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2013 à 17:41:55

              Je ne vois vraiment pas...
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                18 mai 2013 à 17:44:56

                En effet c'est tout bête encore faut-il comprendre ce qu'on fait.

                def jeu (self):
                    
                            t = Toplevel(self.fenetre_menu)
                            
                            
                 
                            bou10=Button(text='QUITTER',width=8,command=quit)
                            bou10.grid(row=10, column=3)
                 
                 
                            Texte=StringVar()
                            LabelQuestion1=Label(t, textvariable=Texte,fg='red',bg='white')
                            LabelQuestion1.grid(row=1, column=2)
                 
                            def fille():
                                Texte.set ('la personne est Maelle')
                 
                            def garcon():
                                Texte.set ('repondez aux autres questions')
                 
                            Texte.set("Est-ce un garcon ou une fille ?")
                            bou0=Button(text="garcon", command=garcon)
                            bou1=Button(text="fille", command=fille)
                 
                 
                            bou0.grid(row=1, column=3)
                            bou1.grid(row=2, column=3)
                 

                Tu te rends compte que tu as des indentations d'une longueur de 8 espaces, alors que la convention en veut 4, ça rend ton code illisible.

                Bref...:-°

                • Partager sur Facebook
                • Partager sur Twitter
                  18 mai 2013 à 17:48:51

                  Je vais t'expliquer pourquoi ma manière de coder est si mauvaise... Je suis en terminal S spécialité ISN, donc j'ai appris python il n'y a pas si longtemps que ça ^^ Et la j'ai un projet à terminer pour jeudi mais je n'arrive pas à faire ce que j'ai demandé :/

                  Il me manque juste ça pour que le projet soit finit. Donc si tu connais la réponse, merci de m'aider... J'ai l'impression que tu m'enfonces en fait depuis tout à l'heure :p

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 mai 2013 à 18:40:36

                    quelqu'un d'autre a une idée ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      18 mai 2013 à 18:43:30

                      Je t'ai donné la solution, tu veux quoi de plus? T'as vu mon code plus haut, j'ai fais les modifications qu'il fallait
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 mai 2013 à 18:56:13

                        Pardon j'ai oublié de préciser, le code ne fonctionne malheureusement pas :/
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          18 mai 2013 à 19:27:31

                          chez moi si... même copier coller c'est dur :p
                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 mai 2013 à 19:32:35

                            Sous quelle version de python ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              18 mai 2013 à 19:58:56

                              Pourtant j'ai la même... et j'ai fait un copier-coller... sauf que ça ne fonctionne pas
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                18 mai 2013 à 20:33:59

                                Message d'erreur? N° ligne? Quelle idée de dire ça ne marche pas, sans détailler, ça va pas aidé à débugger...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  18 mai 2013 à 21:34:46

                                  Non c'est bon j'ai trouvé une autre technique, on s'est débrouillé avec mon binôme sans ce code...

                                  Par contre je trouve que tu prends un peu les personnes pour des "cons", tu es expérimentés (je pense) et tu aides des personnes qui n'ont pas ou peu d'expérience comme moi...

                                  Merci de ton aide quand même :D

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    18 mai 2013 à 21:42:48

                                    Quand on connaît pas...
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Ouvrir dans une autre fenêtre

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown