我正在创建一个界面,以便我可以在覆盆子7英寸触摸屏上看到gui上的温度,压力和湿度。但是我无法更新温度(我还没有做过湿度或压力),所以会发生什么当我运行程序时,它会在运行时显示温度,但不会持续更新它。
这是我的代码,不是所有应用程序,而是读取和显示温度的部分。
main_window = Tk()
temp = sense.get_temperature()
tempreture_label = Label(main_window, text = temp)
tempreture_label.pack()
main_window.mainloop()
我一直在寻找其他问题,他们建议在稍微类似的情况下使用set(),但我不知道它会如何帮助我。
我也尝试将我的问题链接到更新的tkinter时钟,但我相信我自己很困惑。
任何帮助将不胜感激
您可以使用after
方法定期更新标签的文本,假设sense.get_temperature()
在调用时返回温度:
import tkinter as tk
def temp_up(period_ms):
global temperature_label
#temp = sense.get_temperature()
temp = "simulation"
print("eacht time")
temperature_label['text'] = temp
temperature_label.after(period_ms, temp_up, period_ms)
root = tk.Tk()
temperature_label = tk.Label(root)
temperature_label.pack()
temp_up(1000)
root.mainloop()
基于使用Bryan's suggestion的after
的*args
,temperature_label.after(period_ms, lambda arg = period_ms: temp_up(arg))
线被替换为建议的线。