一旦表单加载Kivy,我如何运行一个函数

chr*_*bob 5 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()
Run Code Online (Sandbox Code Playgroud)

Ent*_*orm 8

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()
Run Code Online (Sandbox Code Playgroud)

  • on_start 确实是一个很好的解决方案!谢谢! (2认同)

inc*_*ent 5

我不确定'load'究竟是什么意思(也就是说,小部件创建的哪个方面对你的函数很重要),但也许你可以使用on_parent当小部件添加到另一个小部件时会发生的情况.

  • 当布尔值发生变化时,为什么不能运行函数? (2认同)
  • 对于位于“.kv”文件中的小部件,“on_parent”事件似乎会触发两次。我同意 @chromebookbob 的愿望,即从“.kv”文件中的空白标签和按钮开始,我在开始时以编程方式填充该文件。这并不是特别明显。 (2认同)