如何在Kivy中表单加载后运行函数
我有一个用Python写的kivy程序,这个程序里有一个文本框和几个按钮。我用kivy语言写了界面,现在我需要运行一个函数,这个函数会更新文本框的内容,并且等待用户按下一个按钮。请问有没有什么像on_load这样的属性,或者其他方法,可以在所有的控件加载完成后运行这个函数呢?
<MainGui>:
id: layout1
orientation: 'horizontal'
#I would like for some sort of event like below to run my function:
on_load: root.myfunction()
3 个回答
-1
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()
更新 在 Time 类中的函数会在应用程序开始时加载。你可以定义任何函数或类并进行替换,也可以添加更多的类和函数。但要记住,构建最终只会返回一个对象,所以要确保你的程序最后管理成一个对象。
6
我不太明白你说的“加载”具体指的是什么(也就是说,创建这个小部件的哪个方面对你的功能很重要),不过你可以试试用 on_parent
,这个是在小部件被添加到另一个小部件时会发生的事件。
15
这段代码是用来处理某些数据的。它的主要目的是让计算机能够理解并执行特定的任务。代码块里可能包含一些指令,告诉计算机该做什么,比如计算、存储信息或者显示结果。
在编程中,代码就像是给计算机下达的命令。每一行代码都有它的作用,组合在一起就能完成更复杂的工作。对于初学者来说,理解这些基本的指令是学习编程的第一步。
如果你看到代码块中的内容,可能会发现一些看起来像是公式的东西,这些都是编程语言的语法规则。掌握这些规则后,你就能开始写自己的程序了。
总之,代码是计算机与人类沟通的桥梁,理解它的结构和功能是学习编程的关键。
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()