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