python 3,tkinter,SenseHat,如何在标签中显示更新温度

问题描述 投票:0回答:1

我正在创建一个界面,以便我可以在覆盆子7英寸触摸屏上看到gui上的温度,压力和湿度。但是我无法更新温度(我还没有做过湿度或压力),所以会发生什么当我运行程序时,它会在运行时显示温度,但不会持续更新它。

这是我的代码,不是所有应用程序,而是读取和显示温度的部分。

main_window = Tk()
temp = sense.get_temperature()
tempreture_label = Label(main_window, text = temp)
tempreture_label.pack()
main_window.mainloop()

我一直在寻找其他问题,他们建议在稍微类似的情况下使用set(),但我不知道它会如何帮助我。

我也尝试将我的问题链接到更新的tkinter时钟,但我相信我自己很困惑。

任何帮助将不胜感激

windows python-3.x tkinter updating sense
1个回答
0
投票

您可以使用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 suggestionafter*argstemperature_label.after(period_ms, lambda arg = period_ms: temp_up(arg))线被替换为建议的线。

© www.soinside.com 2019 - 2024. All rights reserved.