Passer d'un fenêtre à une autre
Gabibarre
-
Gabibarre -
Gabibarre -
Salut à tous,
alors mon problème c'est que j'aimerai, avec tkinter, avoir une fenêtre sur laquelle il y a un bouton qui m'ouvre une autre fenêtre et qui ferme en mémé temps la première.
Ou alors il me faudrait une technique me permettant de totalement changer totalement ce qu'il y a dans la fenêtre quand je clique sur un bouton.
Pour l'instant je suis parti sur la première solution et j'en suis là.
alors mon problème c'est que j'aimerai, avec tkinter, avoir une fenêtre sur laquelle il y a un bouton qui m'ouvre une autre fenêtre et qui ferme en mémé temps la première.
Ou alors il me faudrait une technique me permettant de totalement changer totalement ce qu'il y a dans la fenêtre quand je clique sur un bouton.
from tkinter import *
def test():
acceuil()
sys.exit()
def fenetre():
fenetre = Tk()
champ_label = Label(fenetre, text="Salut !")
champ_label.pack()
bouton = Button(fenetre,text="Acceuil", command=test)
bouton.pack()
fenetre.mainloop()
def acceuil():
fenetre = Tk()
champ_label = Label(fenetre, text="ACCEUIL")
champ_label.pack()
fenetre.mainloop()
if __name__ == '__main__':
fenetre()
Pour l'instant je suis parti sur la première solution et j'en suis là.
A voir également:
- Tkinter changer de fenêtre
- Changer dns - Guide
- Changer de carte graphique - Guide
- Fenetre windows - Guide
- Fenêtre hors écran windows 11 - Guide
- Changer wifi chromecast - Guide
1 réponse
2 techniques, l'une plus claire que l'autre.
version brute:
ou la version propre:
espérant être assez clair et avoir répondu a ta question. :)
version brute:
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()
ou la version propre:
class fenetres(): def __init__(self): self.f = Tk() champ_label = Label(self.f, text="Salut !") champ_label.pack() bouton = Button(self.f,text="Acceuil", command=self.test) bouton.pack() self.f.mainloop() def acceuil(self): self.f2 = Tk() c_l = Label(self.f2, text="ACCEUILL") c_l.pack() self.f2.mainloop() def test(self): self.f.destroy() self.acceuil() sart = fenetres()
espérant être assez clair et avoir répondu a ta question. :)
merci de ton aide
sauf que la fenêtre "acceuil" s'ouvre directement sans passer par la fenetre des boutons.
Précisément, j'ai cette erreur :
J'espère que tu pourra m'aider.
en fait, ton problème, est que lorsque tu créer le bouton pour quitter le première fenêtre, tu appelle la fonction pour quitter la fenêtre en même temps. python comprend que tu veux quitter la fenêtre alors qu'elle n'est pas encore ouverte, donc il crash.
par ailleurs, tu ne peux pas lancer une fonction a partir d'une variable en string (des lettres) reste quand même bien compliquer. soit je te propose de créer soit une fonction test() pour chacun de tes boutons qui ouvrent une fenêtre, soit comme ceci:
Merci de ton aide :)