Kivy 教程

Kivy - 主页

Kivy 基础知识

Kivy - 入门 Kivy - 安装 Kivy - 架构 Kivy - 文件语法 Kivy - 应用程序 Kivy - Hello World Kivy - 应用生命周期 Kivy - 事件 Kivy - 属性 Kivy - 输入 Kivy - 行为

Kivy 按钮

Kivy - 按钮 Kivy - 按钮事件 Kivy - 按钮颜色 Kivy - 按钮大小 Kivy - 按钮位置 Kivy - 圆形按钮 Kivy - 禁用按钮 Kivy - 图片按钮

Kivy 小部件

Kivy -小部件 Kivy - 标签 Kivy - 文本输入 Kivy - 画布 Kivy - 线条 Kivy - 复选框 Kivy - 下拉列表 Kivy - 窗口 Kivy - ScrollView Kivy - 轮播 Kivy - 滑块 Kivy - 图像 Kivy - 弹出窗口 Kivy - 开关 Kivy - 旋转器 Kivy - 拆分器 Kivy - 进度条 Kivy - 气泡 Kivy - 选项卡式面板 Kivy - 散点图 Kivy - 手风琴 Kivy - 文件选择器 Kivy - 颜色选择器 Kivy - 代码输入 Kivy - 模态视图 Kivy - 切换按钮 Kivy - 相机 Kivy - 树形视图 Kivy - reStructuredText Kivy - 操作栏 Kivy - 视频播放器 Kivy - 模板视图 Kivy - VKeyboard Kivy - 触摸涟漪 Kivy - 音频 Kivy - 视频 Kivy - 拼写 Kivy - 效果 Kivy - 输入记录器 Kivy - OpenGL Kivy - 文本 Kivy - 文本标记 Kivy - 设置

Kivy 布局

Kivy - 布局 Kivy - 浮动布局 Kivy - 网格布局 Kivy - 框布局 Kivy - 堆栈布局 Kivy - 锚点布局 Kivy - 相对布局 Kivy - 页面布局 Kivy - 循环布局 Kivy - 布局中的布局

Kivy 高级概念

Kivy - 配置对象 Kivy - Atlas Kivy - 数据加载器 Kivy - 缓存管理器 Kivy - 控制台 Kivy - 动画 Kivy - MultiStroke Kivy - 时钟 Kivy - SVG Kivy - UrlRequest Kivy - 剪贴板 Kivy - 工厂 Kivy - 手势 Kivy - 语言 Kivy - 图形 Kivy - 绘图 Kivy - 打包 Kivy - Garden Kivy - 存储 Kivy - 矢量 Kivy - Utils Kivy - Inspector 工具 Kivy - 工具 Kivy - 日志 Kivy - 帧缓冲区

Kivy 应用程序和项目

Kivy - 绘图应用程序 Kivy - 计算器应用程序 Kivy - 秒表应用程序 Kivy - 相机处理 Kivy - 图像查看器 Kivy - 贝塞尔曲线 Kivy - 画布应力 Kivy - 圆形绘制 Kivy - 小部件动画 Kivy - 杂项

Kivy - 应用程序

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

应用程序 GUI 是通过覆盖 App 类中的 build() 方法或提供相应的".kv"文件来设置的。

应用程序配置

如果您想提供一个或多个参数的自定义配置,则在调用 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"文件进行填充。

示例

以下是完整的程序−

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 事件。