一、Variable类
Tkinter支持将很多GUI组件与变量进行双向绑定,执行这样的双向绑定后,编程会变得更加方便。
- 如果程序改变了变量的值,那么GUI组件的显示内容或值会随之改变;
- 当GUI组件的内容发生改变时(如用户输入),变量的值也会随之改变。
这为我们节省了很多参数的传输和更新工作,而且在一些变量的一致性上面更加方便。
但这样的双向绑定,必须使用Tkinter的Variable类的子类来实现。
下面是Variable类的4中子类:
子类 | 说明 |
---|---|
StringVar() | 用于包装Str值的变量,默认是"" |
IntVar() | 用于包装整型值的变量,默认是0 |
DoubleVar() | 用于包装浮点值的变量,默认是0.0 |
BooleanVar() | 用于包装bool值的变量,True是1,False是0 |
Variable类的使用
- 使用前需要先声明创建
- 使用get( )方法取得变量内容
-
使用set( )方法设置变量内容
不做过多的讲解,可以自己尝试。
二、Trace追踪
Trace实际上是Variable类的一个方法,用于对这些变量的变化进行实时追踪,当变量发生改变时,能自动执行对应和函数。
在需要对Variable类的对象进行实时追踪显示时,可以在这个变量上调用trace()
下面是在别的地方copy的栗子,可以品品。
# 变量追踪:trace
from tkinter import *
window=Tk()
def callbackw(*args): #
print("variable was written!")
def callbackr(*args):
print("variable was read !")
def processButton1():
var.set("hello,world!")
def processButton2():
var.get()
def processButton3():
var.trace_vdelete("r",vr) #
var=StringVar()
# 追踪变量var的变化
vw=var.trace("w", callbackw) #当变量var被重设时提示
vr=var.trace("r", callbackr) #当变量var被读取时提示
Label(window,textvariable=var).pack()
Button(window,text="Button1",command=processButton1).pack() #重新设定变量var
Button(window,text="Button2",command=processButton2).pack() #读取变量var的值
Button(window,text="Button3",command=processButton3).pack() #不再追踪读取变量的操作
window.mainloop()
网友评论