Tkinter 从0到1——Variable类的使用方法详解
Posted codesegment
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tkinter 从0到1——Variable类的使用方法详解相关的知识,希望对你有一定的参考价值。
为什么需要Variable
Variables
是Tkinter编程中非常重要的组成部分。它存在的目的是为了解决Python中存在的一个“问题”,即Python本身并不支持变量回溯。- 而变量的回溯在GUI编程中是极为重要的部分。考虑如下的场景:在你的GUI界面中有一个
Entry
输入框和一个按钮,每当用户按下按钮时都会将输入框中的值通过messagebox.showinfo消息框显示出来
效果如下:from tkinter import Tk, Variable, Entry, Button from tkinter.messagebox import showinfo tk = Tk() a = Variable(tk, value=‘123‘) e = Entry(tk, textvariable=a) b = Button(tk, command=lambda *args: showinfo(message=a.get()), text="GET") e.pack() b.pack() tk.mainloop()
通过Variable
作为前段和后端的桥梁,我们便可以很方便的获取用户输入的值。
Variable
常用的使用方法
- 根据所包装的变量的不同,共有如下的四种
Variable
:BooleanVar, DoubleVar, IntVar, StringVar
, 除了类型不同, 其使用方法完全一致
实例化一个Variable
对象
- 例: 实例化一个
StringVar
可以通过var = StringVar()
value
属性为其赋初值
对一个Variable
对象进行读取or写入操作
- 通过
Variable
对象的set
和get
方法进行 set
from tkinter import * tk = Tk() v = Variable() v.set("123") e = Entry(tk, textvariable=v) e.pack() tk.mainloop()
get
(可以参考例1)
对Variable
对象执行读or写or销毁操作本身也可以触发事件
- 调用
Variable
的trace
方法,在Variable
的值被读取or写入or销毁的时候触发事件,进而调用回调函数。 trace
方法接收两个参数:mode
指定了事件的类型, 用"r"表示读取操作, 用"w"表示写入操作, 用"u"表示销毁操作.callback
指定了当mode
中指定的事件触发时调用的回调函数- 例: 当对一个
Entry
执行写入操作时, 触发回调函数:
执行后,每当改变from tkinter import * from tkinter.messagebox import * def callback(*args): showinfo(message="I‘ve been changed") tk = Tk() v = Variable() v.trace("w", callback) e = Entry(tk, textvariable=v) e.pack() tk.mainloop()
Entry
中的值,都会有提示框出现。
获取更多对
Variable
的介绍,建议参考官方文档:https://effbot.org/tkinterbook/variable.htm
欢迎关注我的微信公众号: Code Segment, 获取更多关于编程等内容的文章。
以上是关于Tkinter 从0到1——Variable类的使用方法详解的主要内容,如果未能解决你的问题,请参考以下文章
Python3 tkinter基础 Radiobutton variable 默认选中的按钮
Python3 tkinter基础 Radiobutton variable 默认选中的按钮
Python3 tkinter基础 Checkbutton variable 多选钮是否被选中
Python系列_tkinter.TclError: no display name and no $DISPLAY environment variable
tkinter、python 和 seaborn 的问题:_tkinter.TclError: no display name and no $DISPLAY environment variable