- 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 - 滚动视图
- 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 - 虚拟键盘
- 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 - 图集
- Kivy - 数据加载器
- Kivy - 缓存管理器
- Kivy - 控制台
- Kivy - 动画
- Kivy - 多笔划
- Kivy - 时钟
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪贴板
- Kivy - 工厂
- Kivy - 手势
- Kivy - 语言
- Kivy - 图形
- Kivy - 绘图
- Kivy - 打包
- Kivy - Garden
- Kivy - 存储
- Kivy - 向量
- Kivy - 工具函数
- Kivy - 检查器
- Kivy - 工具
- Kivy - 日志记录器
- Kivy - 帧缓冲区
- Kivy 应用程序和项目
- 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() 函数修改此文件夹列表。
如果您想使用任何替代 default.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() - 返回当前上下文。
register_context(name, cls, *args, **kwargs) - 注册一个新的上下文。