Python Kivy поддерживает обновление текста (обновление)

#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)