某些小部件 (如文本输入小部件) 的当前值设置可以通过使用特殊选项直接连接到应用程序变量。这些选项包括variable、textvariable、onvalue、offvalue和值。这种连接是双向的: 如果变量因任何原因而改变,它所连接的小部件将被更新以反映新的值。
    不幸的是,在tkinter的当前实现中,不可能通过变量或textvariable选项将任意Python变量移交给小部件。唯一可行的变量是从tkinter中定义的名为Variable的类中子类化的变量。
    已经定义了许多有用的变量子类: StringVar、IntVar、DoubleVar和BooleanVar。要读取此类变量的当前值,请对其调用get() 方法,并更改其值,然后调用set() 方法。如果您遵循此协议,小部件将始终跟踪变量的值,而无需您进一步干预。
    例如:

    1. class App(tk.Frame):
    2. def __init__(self, master):
    3. super().__init__(master)
    4. self.pack()
    5. self.entrythingy = tk.Entry()
    6. self.entrythingy.pack()
    7. # Create the application variable.
    8. self.contents = tk.StringVar()
    9. # Set it to some value.
    10. self.contents.set("this is a variable")
    11. # Tell the entry widget to watch this variable.
    12. self.entrythingy["textvariable"] = self.contents
    13. # Define a callback for when the user hits return.
    14. # It prints the current value of the variable.
    15. self.entrythingy.bind('<Key-Return>',
    16. self.print_contents)
    17. def print_contents(self, event):
    18. print("Hi. The current entry content is:",
    19. self.contents.get())
    20. root = tk.Tk()
    21. myapp = App(root)
    22. myapp.mainloop()

    **