Kivy 简明教程
Kivy - Applications
使用 Kivy 框架编写的应用程序由继承“kivy.app.App”类的类的对象表示。调用此对象的 run() 方法将启动应用程序,并进入无限事件循环。
应用程序 GUI 通过覆盖 App 类中的 build() 方法或提供相应的“.kv”文件来设置。
Application Configuration
如果您想提供一个或多个参数的自定义配置,则当调用 App 类的 build_config() 方法时,将创建一个 config.ini 文件。
以下是 build_config() 方法的一个示例。它将值存储在“ini”文件的“section1”中。“ini”文件的名字将与应用程序类相同(如果没有“App”后缀)。因此,如果您的应用程序类是“HelloApp”,那么“ini”文件将被创建为“hello.ini”。当调用 build() 方法时,将加载此文件中的参数。
def build_config(self, config):
config.setdefaults('section1', {
'Company': 'TutorialsPoint',
'year': '2023'
})
一旦添加了一个节,就会在包含“hello.py”文件的同一目录中创建“hello.ini”文件。
在 build() 方法中加载和使用配置设置,如下所示 −
def build(self):
config = self.config
l1 = Label(text="© {} Year {}".format(
config.get('section1', 'company'),
config.getint('section1', 'year')),
font_size=40)
return l1
运行应用程序后,便会通过读取“config”文件来填充标签。
Example
以下为完整程序 −
from kivy.app import App
from kivy.uix.label import Label
from kivy.core.window import Window
class HelloApp(App):
Window.size = (720, 300)
def build_config(self, config):
config.setdefaults('section1', {
'Company': 'TutorialsPoint',
'year': '2023'
})
def build(self):
config = self.config
l1 = Label(text="© {} Year {}".format(
config.get('section1', 'company'),
config.getint('section1', 'year')),
font_size=40)
return l1
app = HelloApp()
app.run()
Instance Methods in the App Class
App 类定义了以下实例方法 −
-
build() − 此方法初始化应用程序,并且仅调用一次。如果此方法返回一个控件(树),则它将用作根控件,并添加到窗口中。
-
build_config() − 此方法在应用程序初始化之前构建 ConfigParser 对象。根据您在此处放置的 config 的任何默认部分/键/值,“ini”文件将在本地目录中创建。
-
load_config() − 此函数返回包含应用程序配置的 ConfigParser。
-
load_kv() − 如果先前尚未为此应用程序构建控件树,则首次运行应用程序时会调用此方法。然后,此方法将在与包含应用程序类的文件相同的目录中查找匹配的“kv”文件。
-
pause() − 此方法会导致应用程序暂停。
-
run() − 调用时,此方法以独立模式启动应用程序。
-
stop() − 此方法停止应用程序。
-
on_pause() − 这是一个事件处理程序方法,在请求暂停模式时调用。如果它返回 True,则应用程序可以进入暂停模式,否则应用程序将被停止。
-
on_resume() − 一个事件处理程序方法,该方法从暂停模式恢复应用程序。
-
on_start() − 此方法是“on_start”事件的事件处理程序。它在初始化之后(在 build() 已被调用之后)立即触发,但在应用程序开始运行之前。
-
on_stop() − “on_stop”事件在应用程序运行完毕后(即窗口即将关闭)触发。此方法处理 on_stop 事件。