【发布时间】:2018-05-24 10:04:03
【问题描述】:
每次“x”更改值时,我都会尝试使用“x”值更新我在 Tkinter 中的标签。几乎就像一个现场柜台。 这是一个简化的循环,因为我正在研究 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,然后将 1 替换为 2,依此类推。我不希望 1,2,3,4 一起出现。
当我执行代码时,它会向我显示数字 1 到 4,但它没有实时更新它,它们彼此低于,这不是我想要的
【问题讨论】:
-
使用
tkinter.after(miliseconds, function_name)每2000ms(2s)执行一次函数 -
顺便说一句:您不必再次创建
Label来更改文本 -temp["text"] = "new text"但您必须记住全局变量中的标签。 -
示例如何使用
afterto display current time in label -
顺便说一句:它不起作用,因为它阻止了
mainloop()从系统获取事件、向小部件发送事件、重绘小部件(以及所有循环)。 -
这个网站上有很多关于定期运行函数、读取传感器以及更新标签或其他小部件的问题。问之前有没有做过调查?
标签: python user-interface tkinter raspberry-pi3 sensors