【问题标题】:How to change Label text via Clock.schedule_interval如何通过 Clock.schedule_interval 更改标签文本
【发布时间】:2016-02-04 20:17:12
【问题描述】:

在下面的代码中更改测试标签的正确方法是什么(使用 my_callback 函数):

class Hello(FloatLayout):
    def __init__(self,**kwargs):
        super(Hello,self).__init__(**kwargs)
        self.Test = Label(text = "Aaa", pos=(0,0), font_size=70)
        self.add_widget(self.Test)

    def my_callback(self):
        print('My callback is called')
        self.Test.text = "Bbb"

    Clock.schedule_interval(my_callback, 3)

class app1(App):
    def build(self):
        return Hello()

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

现在有错误:

AttributeError: 'float' 对象没有属性 'Test'

自调用可能有问题?

【问题讨论】:

    标签: python class kivy


    【解决方案1】:
    class Hello(FloatLayout):
        def __init__(self,**kwargs):
            super(Hello,self).__init__(**kwargs)
            self.Test = Label(text = "Aaa", pos=(0,0), font_size=70)
            self.add_widget(self.Test)
            Clock.schedule_interval(self.my_callback, 3)
        def my_callback(self, dt=0):
            print('My callback is called')
            self.Test.text = "Bbb"
    

    在直接进入 kivy 之前,您可能想看看一些基本的 Python 教程......

    【讨论】:

    • 谢谢乔兰,你说得对,我赶上了。如果您不介意,我会在您的代码中添加一件事:my_callback 应该接收两个参数;)
    猜你喜欢
    • 2022-08-20
    • 2020-04-06
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多