#python #python-3.x #kivy
#python #python-3.x #kivy
Вопрос:
У меня есть этот код Kivy, работающий на Jetson Nano. MLX90614 — это датчик температуры, подключенный к i2c. После запуска он покажет температуру, но он не обновляется / обновляется. Как я могу заставить его постоянно отображать фактическую температуру?
Вот код:
from kivy.app import App
from kivy.uix.label import Label
import board
import busio as io
import adafruit_mlx90614
i2c = io.I2C(board.SCL, board.SDA, frequency=100000)
mlx = adafruit_mlx90614.MLX90614(i2c)
class MainApp(App):
def build(self):
label = Label(text='This is the temperature: ' str(mlx.object_temperature),
size_hint=(.5, .5),
pos_hint={'center_x': .5, 'center_y': .5})
return label
if __name__ == '__main__':
app = MainApp()
app.run()
Вот результат:
Ответ №1:
Что-то вроде этого:
from kivy.clock import Clock
class MainApp(App):
def build(self):
self.label = Label(text='This is the temperature: ' str(mlx.object_temperature),
size_hint=(.5, .5),
pos_hint={'center_x': .5, 'center_y': .5})
Clock.schedule_interval(self.update_label, 0)
return self.label
def update_label(self, dt):
self.label.text = "This is the temperature: {}".format(mlx.object_temperature)