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 提供了一个名为 ExceptionHandler 的类,可以管理 Kivy 或您自己的代码引发的异常。

ExceptionManager 类在"kivy.base"模块中定义。您需要从"kivy.base"导入它并访问处理 Kivy 异常的实例。您可以使用此类为不同类型的异常添加自定义处理程序,或者在发生异常时覆盖 Kivy 的默认行为。例如,您可以使用 handle_exception 方法记录异常、向用户显示消息或正常退出应用程序。

from kivy.base import ExceptionHandler, ExceptionManager
from logging import Logger

class handler(ExceptionHandler):
   def handle_exception(self, inst):
      Logger.exception('Exception caught by ExceptionHandler')
      return ExceptionManager.PASS
      
ExceptionManager.add_handler(handler())

处理程序函数将异常作为参数并返回以下值之一 −

  • ExceptionManager.PASS − 应忽略异常,因为它已由处理程序处理。

  • ExceptionManager.RAISE − 应重新引发异常。

  • ExceptionManager.USER_HANDLED −该异常由用户处理,不应记录。

您还可以使用 handle_exception 方法通过已注册的处理程序手动处理异常。

Kivy - 资源管理

"kivy.resources"模块包括在路径列表中搜索特定资源的功能,特别是当您的应用程序处理多个路径和项目时。

当 Kivy 查找任何资源(例如图像文件或"kv"文件)时,它会搜索一组预定的文件夹。您可以使用 resource_add_path() 和 resource_remove_path() 函数修改此文件夹列表。

如果您想使用任何替代默认 style.kv 或 data/defaulttheme0.png,您可以通过 resource_add_path() 方法将路径添加到您的首选替代方案中。

以下函数在"kivy.resources"模块中定义 −

  • resource_add_path(path) − 添加要搜索的自定义路径。

  • resource_find(filename, use_cache=False) − 在路径列表中搜索资源。查找结果缓存 60 秒。可以使用 use_cache=False 禁用此功能。

  • resource_remove_path(path) −删除搜索路径。

Kivy - 弱代理

Python 使用引用计数算法进行垃圾收集,通过计算引用某个对象的对象数量。如果垃圾收集器发现某个对象被另一个对象引用,则无法对其进行垃圾收集。如果计数器达到零,垃圾收集器将释放该对象。

弱引用是一种不保护对象免遭垃圾收集的引用。为了创建弱引用,Python 为我们提供了一个名为weakref的模块。

Kivy 在 kivy.weakproxy 模块中定义了 WeakProxy 类。为了允许垃圾收集,WeakProxy 类提供了对对象的弱引用。它通过添加比较支持有效地增强了weakref.proxy。

Kivy - 上下文

Kivy 对象 Clock、Cache 和 Builder 是全局对象。要在当前应用程序的上下文中使用它们,您必须注册它。 kivy.context 模块定义了一个 Context 类,它继承了 Python 内置 dict 类的属性。

除了 dict 方法之外,我们还在此模块中定义了以下函数 −

  • get_current_context() − 返回当前上下文。

  • egister_context(name, cls, *args, **kwargs) − 注册新上下文。