变量类别
基本概念
有些Widget控件在执行时会更改内容: 文本框(Entry)、选项按钮(Radio button)等。
有些控件我们可以更改它们的内容: 标签(Label)等。
如果想要更改它们的内容可以使用这些控件的参数,例如,textvariable、variable、onvalue等。
不过要将Widget控件的参数以变量方式处理时,需要借助tkinter模块内的变量类别(Variable Classes)
这个类别有4个子类别,每一个类别其实是一个数据类型的构造方法,可以通过这4个子类别的数据类型将它们与Widget控件的相关参数结合。
- x = IntVar() 整型,默认0
- x=DoubleVar(),浮点型,默认0.0
- x=StringVar(), 字符串型,默认""
- x=BooleanVar(), 布尔类型,True是1, False是0
get()和set()
可以使用get( )方法取得变量内容,使用set( )方法设置变量内容。
例子: 单击hit按钮可以显示内容,再次单击隐藏内容
from tkinter import *
def btn_hit():
if x.get() == "":
msg_on = True
x.set("wkk")
else:
x.set("")
root = Tk()
root.title("demo")
x = StringVar()
label = Label(root,textvariable=x,width=25,height=2)
label.pack()
btn = Button(root,text="hit",command=btn_hit)
btn.pack()
root.mainloop()
追踪trace()
模式w
可以利用变量设置追踪Widget控件,当其内容更改时,让程序执行callback函数
例子: 当Entry内容改变时,在窗口输出"wkk"
from tkinter import *
def callback(*args):
print("wkk")
root = Tk()
root.title("demo")
xE= StringVar()
entry = Entry(root,textvariable=xE)
entry.pack(pady=5,padx=10)
xE.trace("w",callback) # 有改变则执行callback
root.mainloop()
模式:
- w 执行写入时,自动执行回调函数
模式r
当控件内容被读取时,执行追踪并执行特定函数
例子: 在Entry中输入数据时,Label同步显示,如果单击了读取按钮,系统将发出数据被读取的警告
from tkinter import *
def callbackW(*args):
xL.set(xE.get()) # 同步显示
def callbackR(*args):
print("Warnning:数据被读取")
def hit():
print("读取数据:",xE.get())
root = Tk()
root.title("demo"

本文详细介绍了Tkinter中的变量类别及其应用,包括IntVar、DoubleVar、StringVar和BooleanVar等,通过实例演示如何使用get()和set()方法操作变量,如何通过trace()方法追踪变量变化,并提供了一个简易计算器的实现案例。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



