一旦表单加载Kivy,我如何运行一个功能

时间:2014-07-09 21:35:46

标签: python kivy

我在python中有一个kivy程序,它有一个文本框和几个按钮。我用kivy语言编写了ui,我需要运行一个更新文本框并等待用户按下按钮的功能。是否有一个on_load属性我可以使用或某种东西来加载所有小部件时运行此功能。 .kv文件:

<MainGui>:
   id: layout1
   orientation: 'horizontal'
   #I would like for some sort of event like below to run my function:
   on_load: root.myfunction()

3 个答案:

答案 0 :(得分:5)

我不确定你的意思是什么? (也就是说,小部件创建的哪个方面对你的功能很重要),但也许你可以使用on_parent,当小部件被添加到另一个小部件时就会发生。{/ p>

答案 1 :(得分:2)

from kivy.app           import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label     import Label

class DemoApp(App):

    def build(self):
        self.layout = layout = BoxLayout()
        layout.label = Label(text="INITIAL TEXT")
        layout.add_widget(layout.label)
        return(self.layout)

    def on_start(self, **kwargs):
        self.layout.label.text = "APP LOADED"

DemoApp().run()

答案 2 :(得分:0)

from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
import time


class Time (Label):
    def update (self, *args):
       self.text = time.strftime('%H:%M:%S')


class TimeApp (App):
    def build(self):
        time = Time()
        Clock.schedule_interval(time.update, 1) #replace here
        return time
if __name__ == '__main__':
    app = TimeApp()
    app.run()

更新功能在时间中加载,该类将在应用启动时加载 您可以定义任何函数或类并替换它,也可以添加更多的类和函数,但请记住,该构建返回了一个对象,因此最终在一个对象中管理程序