- 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.uix.behaviors” 模块定义了行为混合器,也称为“可重用类”,它们为小部件提供了额外的功能。它们封装了常见的功能,可以与多个小部件混合使用以扩展其行为。
行为有助于保持代码模块化、可重用和可维护。它们允许您为标准 Kivy 小部件定义自己的实现,这些实现可以作为直接替换。
行为混合器的一个应用是使用图像作为按钮。我们可以定义一个扩展 ButtonBehavior 的自定义类,使其响应“on_press”或“on_touch”等事件,以便图像本身可以像按钮一样工作。本章稍后我们将查看将图像转换为按钮的示例。
“kivy.uix.behaviors” 模块定义了多个混合器。下面解释了一些最常用的类:
ButtonBehavior
此行为为小部件提供了类似按钮的功能。它添加了诸如按下/释放视觉反馈、自动触发“on_press”和“on_release”事件以及处理触摸事件等功能。
它经常与 Button、ToggleButton 或需要类似按钮行为的自定义小部件一起使用。
DragBehavior
此行为类允许通过触摸输入拖动和移动小部件。它处理诸如 on_touch_down、on_touch_move 和 on_touch_up 等触摸事件以实现拖动功能。
它可用于在您的应用程序中创建可拖动的小部件。
FocusBehavior
此行为提供了支持在小部件之间管理焦点的功能。它允许小部件接收键盘输入并处理与焦点相关的事件。
它可用于实现键盘导航并在应用程序中管理焦点遍历。
SelectableBehavior
此行为为小部件添加了选择功能。它允许用户从一组可选择的小部件中选择一个或多个项目。它处理选择状态、视觉反馈以及触发与选择相关的事件。
它经常与 ListView、RecycleView 或需要选择功能的自定义小部件一起使用。
ButtonBehavior 示例
我们现在将开发一个 Kivy 程序来实现 ButtonBehavior。我们使用 Kivy 的 Image 对象在 Kivy 窗口上显示图像。但是,要向其添加类似按钮的行为,我们首先定义一个名为 imgbtn 的自定义类,该类扩展 Image 和 ButtonBehavior 类。
Image 类的 source 属性被赋值为一个字符串,该字符串是图像文件的路径。然后我们覆盖 on_press() 方法,如下所示:
from kivy.uix.image import Image from kivy.uix.behaviors import ButtonBehavior class imgbtn(ButtonBehavior, Image): def __init__(self, **kwargs): super(imgbtn, self).__init__(**kwargs) self.source = 'Logo.jpg' def on_press(self): print("Button pressed")
之后,定义 **imgbtn** 类。让 App 类的 build() 方法返回其对象。
这是 **可运行代码**。您可以保存并运行它:
from kivy.app import App from kivy.uix.image import Image from kivy.uix.behaviors import ButtonBehavior from kivy.config import Config # Configuration Config.set('graphics', 'width', '720') Config.set('graphics', 'height', '400') Config.set('graphics', 'resizable', '1') class imgbtn(ButtonBehavior, Image): def __init__(self, **kwargs): super(imgbtn, self).__init__(**kwargs) self.source = 'Logo.jpg' def on_press(self): print("Button pressed") class ImageApp(App): def build(self): return imgbtn() if __name__ == '__main__': ImageApp().run()
输出
运行上述程序。它将在其中心显示带有图像的 Kivy 窗口:
请注意,图像本身充当按钮。要测试,请单击图像,它将在控制台上打印以下消息:
Button pressed