我知道这可能是一个非常基本的问题,但在花了好几个小时后,我仍然无法弄明白。
我基本上只想将标签的文本绑定到python代码中的变量。我们称之为value
。但是每次运行循环Clock.schedule_interval(RootWidget.update, 1.0/1.0)
这里是python,简化了所以它基本上只是时间,也是为了看它是否真的有效而打印出来。
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.clock import Clock
from kivy.core.window import Window
import time
class RootWidget(FloatLayout):
def update(self, *args):
value = time.time()
print value
self.ids.value_label.text = str(value)
class MainApp(App):
def build(self):
Window.size = (800, 480)
r = RootWidget()
Clock.schedule_interval(r.update, 1)
print 'build running'
return r
def on_pause(self):
return True
if __name__ == '__main__':
MainApp().run()
kv文件看起来像这样:
<RootWidget>:
Label:
id: value_label
text:
y: 20.0
x: 0.0
width: 100.0
italic: False
height: 50.0
答案 0 :(得分:0)
Clock.schedule_interval(RootWidget.update, 1.0/1.0)
您需要安排实例的更新方法,而不是类本身。
例如:
r = RootWidget()
Clock.schedule_interval(r.update, 1)
return r
默认情况下,时钟会传递一些参数,因此您还应该声明更新方法以接受这些参数。如果您不想使用它们,那么您可以这样做:
def update(self, *args):
...