Kivy - 应用



使用 Kivy 框架编写的应用程序由继承自“kivy.app.App”类的类的对象表示。调用此对象的 run() 方法启动应用程序,并进入无限事件循环。

应用程序 GUI 通过重写 App 类中的 build() 方法或提供相应的“.kv”文件来设置。

应用程序配置

如果要提供一个或多个参数的自定义配置,则在调用 App 类的 build_config() 方法时将创建一个 config.ini 文件。

这是一个 build_config() 方法的示例。它将两个参数的值存储在“ini”文件的“section1”部分中。“ini”文件的名称将与应用程序类名称相同(如果应用程序类名称后缀为“App”,则去掉“App”)。因此,如果您的应用程序类是“HelloApp”,则将创建“hello.ini”文件。“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”文件填充 Label。

示例

这是完整的程序:

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()

输出

运行应用程序时,它将生成以下窗口作为输出

Kivy Applications

查找应用程序文件夹中创建的“hello.ini”文件。使用文本编辑器打开它时,它显示以下内容:

[section1]
company = TutorialsPoint
year = 2023

App 类中的实例方法

App 类定义以下实例方法:

  • build() - 此方法初始化应用程序,并且仅调用一次。如果此方法返回一个小部件(树),它将用作根小部件并添加到窗口。

  • build_config() - 此方法在初始化应用程序之前构造 ConfigParser 对象。根据您在此处放置的任何默认节/键/值配置,将在本地目录中创建“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 事件。

广告