Tkinter 支持将很多 GUI 组件与变量进行双向绑定,执行这种双向绑定后编程非常方便:
如果程序改变变量的值,GUI 组件的显示内容或值会随之改变。
当 GUI 组件的内容发生改变时(比如用户输入),变量的值也会随之改变。
为了让 Tkinter 组件与变量进行双向绑定,只要为这些组件指定
variable(通常绑定组件的 value)、
textvariable(通常绑定组件显示的文本)等属性即可。
但这种双向绑定有一个限制,就是 Tkinter不允许将组件和普通变量进行绑定,只能和 tkinter 包下 Variable 类的子类进行绑定。该类包含如下几个子类:
这些 Tkinter 控制变量和一般的 Python 变量一样, 都是用来保存某个值的. 但一般的 Python 变量不能被传递给 variable 或者 textvariable 参数. 这些参数可接受的类型仅限于 Tkinter 包中的 Variable 类的子类. 如下:
x = StringVar() # 保存一个 string 类型变量, 默认值为""
x = IntVar() # 保存一个整型变量, 默认值为0
x = DoubleVar() # 保存一个浮点型变量, 默认值为0.0
x = BooleanVar() # 保存一个布尔型变量, 返回值为 0 (代表 False) 或 1 (代表 True)
要得到其保存的变量值, 使用它的 x.get() 方法即可.
要设置其保存的变量值, 使用它的 x.set() 方法即可.
tkinter 里的每个构件的variable属性不一样,如对于复选框Checkbutton来说,variable的值为1或0,代表着选中或不选中;对于单选框来说,variable与value相配套,当variable==value时代表该框选中。
from tkinter import * top = Tk() L1 = Label(top, text = "User Name") L1.pack(side = LEFT) mytext=StringVar() # String类型的变量 E1 = Entry(top,textvariable=mytext,text=mytext) #双向绑定 E1.pack(side = RIGHT) mytext.set("John") # 设置值 top.mainloop()
REF
https://www.cnblogs.com/myshuzhimei/p/11764522.html
https://blog.csdn.net/qq_28956077/article/details/70767052