Tkinter 变量 get()与set()

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:

Tkinter 变量 get()与set()

点击Click Me后

Tkinter 变量 get()与set()

在上述实例中利用布尔值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:

Tkinter 变量 get()与set()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程