Bonjour

Je ne comprends pas tout sur la notion de maître dans le widgets.

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
from tkinter import *
 
class MonBouton(Frame):
    def __init__(self, boss):
        Frame.__init__(self)
        bou = Button(self, text='Bouton 2')
        bou.pack()
 
class Application (Frame):
    def __init__(self):        
        Frame.__init__(self)
 
 
        self.bouton1 = Button(self, text='Bouton 1')
        self.bouton1.pack()
 
        self.bouton2 = MonBouton(self)
        self.bouton2.pack()
 
app = Application()
app.pack()
print('app =', id(app))
print('app.master =', id(app.master))
print('\napp.bouton1.master =', id(app.bouton1.master))
print('app.bouton2.master =', id(app.bouton2.master))
app.mainloop()
On voit que le bouton 1 est instancié dans app (donc dans une Frame) tandis que le bouton 2 est instancié dans app.master (donc dans une Fenêtre Tk).

Je ne comprends pas pourquoi. Comment faire pour que le bouton 2 s'instancie aussi dans app ? J'ai essayé avec l'argument boss mais ...

Merci pour votre aide.