Python 加载表单后如何运行函数
我有一个用python编写的kivy程序,它有一个文本框和几个按钮。我已经用kivy语言编写了ui,我需要运行一个更新文本框并等待用户按下按钮的函数。当所有的小部件都被加载后,我是否可以使用on_load属性或某种东西来运行这个函数。 .kv文件:Python 加载表单后如何运行函数,python,kivy,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 fun
<MainGui>:
id: layout1
orientation: 'horizontal'
#I would like for some sort of event like below to run my function:
on_load: root.myfunction()
:
id:布局1
方向:“水平”
#我想让下面这样的事件运行我的函数:
加载时:root.myfunction()
我不确定“加载”的确切含义(即,小部件创建的哪个方面对您的功能很重要),但也许您可以在父部件上使用,当小部件添加到另一个小部件时会出现这种情况
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()
更新应用程序开始时加载的时间类中的函数
您可以定义任何函数或类并替换它,您也可以添加更多的类和函数,但请记住,构建将返回一个对象,因此最终在一个对象中管理您的程序您可以发布代码吗,您想要什么还不清楚。您找到解决方案了吗?如果是这样的话,你能发布它吗?@user1816847:刚刚发布了一个答案,请查看:)我所说的加载是指屏幕上显示的窗口包含所有小部件,然后我希望它运行一些代码。“on_parent”似乎是布尔型的,所以我不能用它来运行函数,谢谢你的建议为什么不能在布尔型改变时运行函数?因为我必须使用while循环来检查它是否为真,这将阻止程序运行,直到它为真。不,当布尔值发生变化时,你应该使用kivy的事件系统来做一些事情,而不是用你自己的循环来重新设计轮子。正如我所说,您可以绑定到on\u parent
事件,或者将内容放入on\u parent
方法中。对于.kv
文件中的小部件,on\u parent
事件似乎会触发两次。我和@chromebookbob一样,希望从一个.kv
文件中的空白标签和按钮开始,我从一开始就以编程方式填充这些标签和按钮。这不是特别明显。只要不希望正确设置宽度和高度,这个例子就很好。on_start确实是一个很好的解决方案!谢谢
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()