Tkinter自学05:Variable类和Trace追踪

2020-02-27  本文已影响0人  欠欠的小跟班

一、Variable类

Tkinter支持将很多GUI组件与变量进行双向绑定,执行这样的双向绑定后,编程会变得更加方便。

这为我们节省了很多参数的传输和更新工作,而且在一些变量的一致性上面更加方便。
但这样的双向绑定,必须使用Tkinter的Variable类的子类来实现。
下面是Variable类的4中子类:

子类 说明
StringVar() 用于包装Str值的变量,默认是""
IntVar() 用于包装整型值的变量,默认是0
DoubleVar() 用于包装浮点值的变量,默认是0.0
BooleanVar() 用于包装bool值的变量,True是1,False是0

Variable类的使用

二、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()
上一篇 下一篇

猜你喜欢

热点阅读