【问题标题】:Python Kivy: Update LabelPython Kivy:更新标签
【发布时间】:2020-03-25 14:54:55
【问题描述】:

我是 Kivy 主题的新手,我有一个简单的问题(我认为)。

使用“zufall”函数,我创建了一个随机数。 此数字应在标签中每 2 秒更新一次。

但是当我运行代码时,会出现错误“Label.text 只接受 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()   

谁能给我一个提示?

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    首先你必须从zufall 函数中return 你的随机数,然后从你的__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()))
    

    【讨论】:

    • @Julian 如果你觉得我的回答有帮助,那么你可以考虑accept it,让其他人也看到它.. ;o)
    猜你喜欢
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多