tkinter: 变量类别

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

基本概念

有些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"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值