Tkinter problème pour ouvrir 3fenetre grace a un bouton
cattabrini1
-
quent217 Messages postés 420 Date d'inscription Statut Membre Dernière intervention -
quent217 Messages postés 420 Date d'inscription Statut Membre Dernière intervention -
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()
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:
- Tkinter problème pour ouvrir 3fenetre grace a un bouton
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
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.
Bonjour,
Le principe est le même, il faut fermer la fenêtre 2
Le principe est le même, il faut fermer la fenêtre 2
fenetre2.destroy()puis ouvrir la 3ième fenêtre.
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()
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()
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.
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.
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) :
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.