Kivy Python非常基本的标签文本绑定

时间:2015-04-24 04:56:49

标签: python binding label kivy

我知道这可能是一个非常基本的问题,但在花了好几个小时后,我仍然无法弄明白。

我基本上只想将标签的文本绑定到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

1 个答案:

答案 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):
    ...