Python Kivy: обновление метки - PullRequest
0 голосов
/ 25 марта 2020

Я новичок в Kivy Topi c, и у меня возник простой вопрос (я думаю).

С помощью функции "zufall" я создаю случайное число. Это число должно обновляться каждые 2 секунды в метке.

Но когда я запускаю код, возникает ошибка "Label.text accept only str". Но, по моему мнению, я сделал "random_number" в строку. Или есть еще одна проблема с моим мышлением?

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
import random
from kivy.clock import Clock
from kivy.properties import StringProperty


class ConnectPage(GridLayout):
    # runs on initialization
    def zufall(self, *args):

        random_number = random.randrange(10)
        random_number = str(random_number)
        print(random_number)

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 2  # used for our grid
        self.add_widget(Label(text='OEE'))
        self.add_widget(Label(text=self.zufall))



class EpicApp(App):
    def build(self):
        t = ConnectPage()
        Clock.schedule_interval(t.zufall, 2)
        return t


if __name__ == "__main__":
    EpicApp().run()   

Может кто-нибудь из вас подскажет?

1 Ответ

0 голосов
/ 25 марта 2020

Во-первых, вам нужно return ваше случайное число из вашей функции zufall и вызывать эту функцию из вашего __init__ следующим образом:

    # runs on initialization
    def zufall(self, *args):
        random_number = random.randrange(10)
        random_number = str(random_number)
        return random_number

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 2  # used for our grid
        self.add_widget(Label(text='OEE'))
        self.add_widget(Label(text=self.zufall()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...