Tkinter更新标签中的intvar

时间:2016-09-03 15:57:58

标签: python tkinter

我正在尝试使用Tkinter在标签内不断更改整数。

import tkinter
root = tkinter.Tk()
var  = tkinter.IntVar()

label  = tkinter.Label(root, textvariable=var)
button = tkinter.Button(root, command=lambda: var.set(var.get() + 1), text='+1')

label.pack()
button.pack()
root.mainloop()

我在搜索后最接近我需要的是上面的例子。但是,您需要单击一个按钮来更改整数,我需要的是没有任何东西供用户操作,以便更改整数。

我有一个在程序运行时不断变大的数组,每当有一个新元素附加到它时我需要打印它的长度。

更新:工作回答:

import tkinter
import time
root = tkinter.Tk()
var  = tkinter.IntVar()

label  = tkinter.Label(root, textvariable=var)
label.pack()
def update_Value():
    for i in range(5):
        time.sleep(1)
        var.set(i)
        root.update()
root.after(0, update_Value)
root.mainloop()

1 个答案:

答案 0 :(得分:1)

您可以使用root.after(time_in_milisecond, function_name)调用在标签中更改值而无需用户交互的函数。

示例:showing current time using after

以下是该问题代码的示例,使用aftermainloop启动后自动调用该函数:

import tkinter
import time
root = tkinter.Tk()
var  = tkinter.IntVar()

label  = tkinter.Label(root, textvariable=var)
label.pack()

def function():
    for i in range(5):
        var.set(i)
        root.update()
        time.sleep(1) # to slow down

root.after(1, function)

root.mainloop()