与课程一起使用时,Tkinter如何跟踪其小部件?

时间:2017-05-16 06:24:42

标签: python-3.x tkinter

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仅作为参考传递给该类一次。因此,当根更改(按下按钮或使用条目小部件输入某些文本)时,root的状态会发生变化。课程samp如何知道root已更改?我了解root.mainloop()方法在循环中调用root,但类samp似乎不知道更改引用。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

Tkinter是一个围绕Tcl解释器的薄包装器,它已经加载了" tk"包。当您创建窗口小部件(例如:Frame(master))时,这将在Tcl解释器中创建一个对象。它是Tcl解释器,它保持对主窗口小部件的引用,它是响应更改的Tcl解释器。