美文网首页
Tkinter自学05:Variable类和Trace追踪

Tkinter自学05:Variable类和Trace追踪

作者: 欠欠的小跟班 | 来源:发表于2020-02-27 12:08 被阅读0次

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

相关文章

网友评论

      本文标题:Tkinter自学05:Variable类和Trace追踪

      本文链接:https://www.haomeiwen.com/subject/zmdthhtx.html