如何更新Tkinter Label小部件?

时间:2015-03-22 05:45:46

标签: tkinter python-3.4

到目前为止,这是我的代码:

from tkinter import *

root = Tk()

num1 = IntVar()
num2 = IntVar()

total = IntVar()
total.set(num1.get() + num2.get())

entry1 = Entry(root, textvariable = num1)
entry1.pack()

entry2 = Entry(root, textvariable = num2)
entry2.pack()

total_label = Label(root, textvariable = total)
total_label.pack()

我要做的是让total_label始终显示num1num2的总和。但是,当我运行代码时,total_label仍为0

如何total_label显示num1num2的总和?

2 个答案:

答案 0 :(得分:4)

您可以在num1和num2上使用跟踪:

from tkinter import *

root = Tk()

num1 = IntVar()
num2 = IntVar()
total = IntVar()
def update_total(*severalignoredargs):
    total.set(num1.get() + num2.get())

num1.trace('w',update_total)
num2.trace('w',update_total)


entry1 = Entry(root,textvariable=num1)
entry1.pack()

entry2 = Entry(root,textvariable=num2)
entry2.pack()

total_label = Label(root,textvariable=total)
total_label.pack()

root.mainloop()

答案 1 :(得分:0)

您应该做的是在文本变量上调用trace方法。像num.trace('w',fun) 其中fun是每当num的值更改时要调用的函数。在fun函数中,您可以更新total的值。查看完整的tkinter label教程。