Tkinter problème pour ouvrir 3fenetre grace a un bouton

Fermé
cattabrini1 - 28 févr. 2020 à 19:41
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 - 3 mars 2020 à 13:55
Bonjour, je commencer la création d'interface graphique avec Tkinter et je rencontre un problème. J'ai utilisé le programme proposé dans "https://www.commentcamarche.net/forum/affich-33305301-passer-d-un-fenetre-a-une-autre"pourpasser d'une fenetre a l'autre qui fonctionne tres bien. NEANMOINS j'aimerais maintenant l'utiliser une nouvelle fois pour ouvrir une 3ème fenetre. Or je n'y arrive pas. Pouvez vousm'aidez svp :). Voici le programme si le lien marchepas :

from tkinter import *
global fenetre1, fenetre2

def test():
global fenetre1, fenetre2
fenetre1.destroy()
acceuil()

def fenetre():
global fenetre1
fenetre1 = Tk()
champ_label = Label(fenetre1, text="Salut !")
champ_label.pack()
bouton = Button(fenetre1,text="Acceuil", command=test)
bouton.pack()
fenetre1.mainloop()

def acceuil():
global fenetre2
fenetre2 = Tk()
champ_label = Label(fenetre2, text="ACCEUIL")
champ_label.pack()
fenetre2.mainloop()


if __name__ == '__main__':
fenetre()


Configuration: Windows / Chrome 80.0.3987.122
A voir également:

3 réponses

j'ai un bouton présent sur ma deuxième fenetre "commencer a jouer" et je veux qu'un cliquant dessus cela ouvre une troisème fenetre. Ce mecanisme avec le bouton avait marché pour passer de la fenetre 1 a la fenetre 2 mais je ne sais comment faire pour aller de la fenetre 2 a 3.
1
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
28 févr. 2020 à 23:36
Avez-vous compris comment fonctionne le code pour passer de la fenêtre 1 à la fenêtre 2 ? Il faut faire exactement la même chose. Faites une fonction qui créer la fenêtre 3 comme vous avez fais pour les 2 premières, et une fonction comme la fonction test qui fait le changement.
0
cattabrini1 > quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024
29 févr. 2020 à 10:58
ayant trouver le code sur internet je crois qu'en effet je ne l'ai pas compris :(. Je fais tout simplement une nouvelle fonction test et une nouvelle fonction "acceuil" ?
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346 > cattabrini1
29 févr. 2020 à 11:38
Lorsque vous récupérez du code sur internet, essayez de comprendre comment il fonctionne sinon vous ne saurez pas reproduire par vous même et vous ne progresserez pas.

La première fonction appelée est fenetre et elle créer la fenetre 1 et l'affiche. Lorsque le bouton est créé, on précise la fonction qui sera appelé lorsque on clique dessus avec l'argument command (ici le fonction test) :
bouton = Button(fenetre1,text="Acceuil", command=test)


Quand vous cliquer sur le bouton, ça appelle donc la fonction test qui s'occupe de fermer la fenetre 1 et appeller la fonction accueil.
La fonction accueil créer la fenêtre 2.

Pour avoir une 3ème fenetre, vous devez donc créer une fonction comme fenetre et accueil mais qui affichera cette fois la fenetre 3. Vous devez aussi créer l'équivalent de la fonction test mais qui fermera la fenetre 2 et appelera la fonction que vous avez créer juste avant. Et faites attention de connecter le bouton de la fenetre 2 avec la bonne fonction.
0
cattabrini1 > quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024
1 mars 2020 à 11:04
D'accord je pense avoir compris merci bcp♥️
0
cattabrini1 > cattabrini1
1 mars 2020 à 11:54
j'ai réussi merci bcp :)
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
28 févr. 2020 à 19:59
Bonjour,
Le principe est le même, il faut fermer la fenêtre 2
fenetre2.destroy()
puis ouvrir la 3ième fenêtre.
0
Bonjour merci pour votre réponse, je dois donc juste faire? : (CE QUE J'AI AJOUTER EST EN GRAS)

from tkinter import *
global fenetre1, fenetre2

def test():
global fenetre1, fenetre2
fenetre1.destroy()
FENETRE2.DESTROY()
acceuil()

def fenetre():
global fenetre1
fenetre1 = Tk()
champ_label = Label(fenetre1, text="Salut !")
champ_label.pack()
bouton = Button(fenetre1,text="Acceuil", command=test)
bouton.pack()
fenetre1.mainloop()

def acceuil():
global fenetre2
fenetre2 = Tk()
champ_label = Label(fenetre2, text="ACCEUIL")
champ_label.pack()
fenetre2.mainloop()

FENETRE3 = Tk()
FENETRE3.MAINLOOP()

if __name__ == '__main__':
fenetre()
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
28 févr. 2020 à 21:31
Dans vos prochains messages, merci d'utiliser les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Faites attention à l'ordre dans lequel vous faites les opérations. Vous devez supprimer la deuxième fenetre et créer la troisième au moment ou vous voulez changer de fenetre. Je ne sais pas exactement ce que vous souhaitez faire, mais vous pouvez par exemple ajouter un bouton sur la deuxième fenetre relié à une nouvelle fonction (en reprenant le code du bouton de la première fenetre) et faire le changement dans cette nouvelle fonction.
0