Bonjour à tous (ou bonsoir),

Dans le cadre de mes études je dois programmer un jeu sous tkinter et étant débutant je peine un peu à quelques niveaux malgré mes recherches intensives de documentation et d'éventuels solutions à mon problème.

J'essaie de réaliser une interface qui se compose d'une frame et qui selon le choix sur le bouton auquel on appuie, la frame se detroy, on créée et affiche une nouvelle frame.

Schéma :
Nous somme sur la frame Menu -> appuyer sur le bouton jouer -> frameMenu.destroy() -> page_jeu = Jeu() (instantiation d'une class Jeu elle même enfant de la class Frame) -> page_jeu.pack()

Et mon problème est que j'ai besoin du paramètre master pour instancier une nouvelle frame, mes boutons font partie de la class Menu(Frame) et ont pour callback des méthodes.
Y a t-il une solution à ce problème ?
C'est assez complexe pour moi pardonnez si c'est un peu flou

La class Menu :
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
from tkinter import Frame,Button,Label,X
from Class.ClassJeu import Jeu
from Class.ClassInstruct import Instructions
from Class.ClassEquip import Equipements
 
class Menu(Frame):
        def __init__(self):
                super().__init__()
 
                # INITIALISATION DES VARIABLES
                # Créations des widgets
 
 
                self.message = Label(self, text="SPACE INVADER")
                self.message.pack(side="top", fill=X)
 
 
                self.btn_jouer = Button(self, text="Jouer", command=self.call_play)
                self.btn_jouer.pack()
 
                self.btn_instruc = Button(self, text="Instruction", command=self.call_instruct)
                self.btn_instruc.pack()
 
                self.btn_equip = Button(self, text="Equipements", command=self.call_equipment)
                self.btn_equip.pack()
 
                self.btn_quitter = Button(self, text="Quitter",cursor="pirate", command=self.master.quit)
                self.btn_quitter.pack()
 
 
        # méthode d'appel de la page de jeu
 
        def call_play(self):
                self.destroy()  # On détruit la frame en cour 
                page_jeu = Jeu()  # et on créé la nouvelle
 
        # méthode d'appel de la page d'instruction
 
        def call_instruct(self):
                self.destroy()
                page_instruction = Instructions()
 
        # méthode d'appel de la page d'équipement
 
        def call_equipment(self):
                self.destroy()
                page_equipement = Equipements()
Ps: J'ai découpé mon programme en plusieurs fichier (Un pour chaque class et un main)