我正在尝试使用" x"的值来更新Tkinter中的标签。因为每次" x"改变价值。几乎像一个活的柜台。 这是一个简化的循环,因为我正在研究Pycharm。最后,我想修改此代码,以便使用连接到我的Raspberry Pi的温度传感器的值更新标签。 请对此主题提供一些帮助,谢谢:)
from Tkinter import *
import tkFont
import time
# Window
root = Tk()
root.geometry("700x600+550+100")
# Font
font = tkFont.Font(family = 'Halvetica', size = 36, weight = 'bold')
x = 0
def do():
list = [1, 2, 3, 4]
for x in list:
temp = Label(root, text=x, fg="black", heigh=2, width=15, font=font)
temp.pack()
time.sleep(2)
#temp["text"] = x
do()
root.mainloop()
我希望程序打印1,然后用2替换1,依此类推。我不希望1,2,3,4一起出现。
当我执行代码时,它会向我显示数字1到4,但它没有实时更新它们并且它们在彼此之下,这不是我想要的
答案 0 :(得分:0)
在您的代码中,完全呈现1,2,3,4,因为您每次创建for循环时都会创建一个新标签,并在temp
范围内调用它do
迭代。相反,你应该制作一个标签并更新它的文字,如:
temp = tkinter.Label(...)
for(...):
temp['text'] = "Updated String Here"
此外,如果您使用time.sleep
,它也可以让您的整个GUI处于休眠状态,请尝试使用可用于tkinter小部件的after
方法,例如:
root.after(1000, callback_func)
每隔callback_func
毫秒就会调用1000
。