我想在Tkinter中尽快显示一些数字。我正在尝试做的程序,会发送许多号码,并应显示这些号码。
在类似的环境中,色粉必须非常快速地更改标签。
from tkinter import *
import time
window = Tk()
lbl13 = Label(window, text="-")
lbl13.grid(column=0, row=0)
x = 0
while 1:
lbl13.config(text = str(x))
time.sleep(2)
x +=1
window.mainloop()
Tkinter窗口甚至没有在我的计算机上打开。那是因为我的硬件太弱了吗?我可以更改该程序也在计算机上运行的方式。谢谢您的回答!
答案 0 :(得分:2)
无限while循环将阻止程序进入您调用window.mainloop()
的行。您应该重复调用window.update()而不是最后调用window.mainloop():
from tkinter import *
import time
window = Tk()
lbl13 = Label(window, text="-")
lbl13.grid(column=0, row=0)
x = 0
while 1:
lbl13.config(text = str(x))
window.update()
x +=1
答案 1 :(得分:1)
使用after
和适当的mainloop
可能是实现所需目标的一种更灵活的方法;它也可以在不同的上下文中重用,并且可以用于不仅仅增加标签上的数字的应用程序中。
也许是这样的:
import tkinter as tk
if __name__ == '__main__':
def increment():
var.set(var.get() + 1)
label.after(1, increment)
window = tk.Tk()
var = tk.IntVar(0)
label = tk.Label(window, textvariable=var)
label.pack()
increment()
window.mainloop()