0
点赞
收藏
分享

微信扫一扫

Tkinter variable textvariable

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()

Tkinter variable textvariable_双向绑定

 

 

 

举报

相关推荐

0 条评论