以下是我正在使用的基本示例。标签显示为我所期望的,但文本永远不会更改,即使我确实在控制台中看到显示Clock.schedule_interval 滴答的打印语句。关于出了什么问题的任何想法???
谢谢你,新年快乐!
首先是.kvlang文件
<Demo>:
button_text: my_button
BoxLayout:
Label:
id: my_button
text: 'Initial Text!'
我的Python。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty, StringProperty
from kivy.clock import Clock
import random
class Demo(BoxLayout):
button_text = ObjectProperty
def change_text(self, dt):
self.button_text.text = str(random.randint(1, 10))
print('Should have changed button text to {}'.format(self.button_text.text))
def start(self):
Clock.schedule_interval(self.change_text, 10)
class TutorialApp(App):
def build(self):
foo = Demo()
foo.start()
return Demo()
if __name__ == "__main__":
TutorialApp().run()
答案 0 :(得分:1)
您缺少括号
button_text = ObjectProperty
更改为
button_text = ObjectProperty(None) # Ha! :)
此外,您应该返回 foo 而不是创建另一个演示
def build(self):
foo = Demo()
foo.start()
#return Demo() change to...
return foo
由于之后的演示不会更新...