Tkinter 变量 get()与set()
可以使用get( )方法取得变量内容,使用set( )方法设置变量内容。
Tkinter 变量 get()与set() 示例1
set()方法的应用。
这个程序在执行时若单击Hit按钮可以显示“I like tkinter”字符串,如果已经显示此字符串则改成不显示此字符串。
这个程序第16行是将标签内容设为变量x,第7行是设置显示标签时的标签内容,第10行则是将标签内容设为空字符串以不显示标签内容。
from tkinter import *
def btn_hit(): # 处理按钮事件
global msg_on # 定义全局变量
if msg_on == False:
msg_on = True
x.set("I like tkinter") # 显示文字
else:
msg_on = False
x.set("") # 不显示文字
root = Tk()
root.title("apidemos.com") # 窗口标题
msg_on = False # 全局变量默认是False
x = StringVar() # Label的变量内容
label = Label(root,textvariable=x, # 设置Label内容是变量X
fg="blue",bg="lightyellow", # 浅黄色底蓝色字
font="Verdana 16 bold", # 字形设置
width=25,height=2) # 标签内容
label.pack()
btn = Button(root,text="Click Me",command=btn_hit)
btn.pack()
root.mainloop()
Output:
点击Click Me后
在上述实例中利用布尔值msg_on变量判断是否要显示“I like tkinter”字符串
-
如果msg_on是False表示目前没有显示“I like tkinter”字符串。
-
如果msg_on是True表示目前有显示“I like tkinter”字符串。
当单击Click Me按钮时,会更改msg_on状态,可参考第6行和第9行。同时也由set()方法更改label对象的参数textariable的内容,第7行设置显示“I like tkinter”字符串,第10行设置不显示“I like tkinter”字符串。
上述程序尽管可以运行,可是并没有使用本节中另一个方法get( ),这个方法可以取得Widget控件某参数的变量内容,我们将使用下列程序进行改良。
Tkinter 变量 get()与set() 示例2
取消布尔值msg_on变量,我们可以直接由get( )方法获得目前Widget控件参数内容,然后由此内容判断是否显示“I like tkinter”字符串。判断方式是如果目前是空字符串则显示“I like tkinter”,如果目前不是空字符串,则改成显示空字符串。
from tkinter import *
def btn_hit(): # 处理按钮事件
if x.get() == "": # 如果当前是空字符串
x.set("I like tkinter") # 显示文字
else:
x.set("") # 不显示文字
root = Tk()
root.title("apidemos.com") # 窗口标题
x = StringVar() # Label的变量内容
label = Label(root,textvariable=x, # 设置Label内容是变量x
fg="blue",bg="lightyellow", # 浅黄色底蓝色字
font="Verdana 16 bold", # 字形设置
width=25,height=2) # 标签内容
label.pack()
btn = Button(root,text="Click Me",command=btn_hit)
btn.pack()
root.mainloop()
Output: