0
from tkinter import *
class SampleClass:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.printButton = Button(master, text = "PrintButton", command=self.printMessage)
self.printButton.pack(side = LEFT)
def printMessage(self):
print("Hulk Smash!")
root = Tk()
samp = SampleClass(root)
root.mainloop()
Tkinter root
は参照としてクラスに一度だけ渡されます。したがって、ルートが変更されると(ボタンを押す、または入力ウィジェットを使用してテキストを入力する)、の状態が変更されます。 samp
クラスは、root
が変更されたことをどのように知っていますか? root.mainloop()
メソッドはループ内でroot
を呼び出しますが、samp
クラスは参照の変更を知らないようです。私はここで何が欠けていますか?Tkinterはクラスで使用するとき、どのようにウィジェットを追跡しますか?
'class' sampが変更の参照を知らないと思われることを理解できません。各ウィジェットは親ウインドウ/ウィジェットを含む 'master'属性を持ち、各ウィジェットはウィジェットのすべての子の辞書を含む' children'属性を持っています。 'samp'クラス内のすべてのウィジェットは、親と子を追跡します。 –