Tkinter更新标签,带有来自内部功能的变量

时间:2018-04-09 21:52:55

标签: python tkinter

我正在使用Tkinter创建一个带有输入字段和按钮的窗口。当按下按钮并且不满足某个条件时,我需要my_label2来显示特定文本,在这种情况下为“无效”。否则,我需要my_label2为空。我在按钮按下调用的函数内部有变量label_text,但是我得到一个错误,说明没有定义label_text。有人可以帮我解决这个问题吗?

root = tk.Tk()

def my_function():

valid = #this variable is either true or false

     if valid :
          label_text = ''

     else :
          label_text = 'Not Valid'

my_label = tk.Label(root, text = "Enter text: ")
my_label.grid(row = 0, column = 0)

my_entry = tk.Entry(root)
my_entry.grid(row = 0, column = 1)

my_button = tk.Button(root, text = "Submit", command = my_function)
my_button.grid(row = 1, column = 1)

my_label2 = tk.Label(root, textvariable = label_text)
my_label2.grid(row = 2, column = 1)

root.mainloop()

1 个答案:

答案 0 :(得分:0)

Tkinter Variables与普通变量不同。要创建一个:

label_text = tk.StringVar()

然后,您需要使用set方法,而不是分配给变量:

label_text.set('')

label_text.set('Not Valid')

请参阅:http://effbot.org/tkinterbook/variable.htm