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 应用程序时,需要各种资源。例如,常见的要求是 sdl2 包或 glew 包。安装 Kivy 时,也会安装这些依赖项。

kivy-deps.glew
kivy-deps.gstreamer
kivy-deps.sdl2

到目前为止,您已经从已安装 Python 运行时的机器运行 Kivy 应用程序。但是,当要将此应用程序移植到另一台未安装 Python 的机器时,您需要构建一个包含程序、Python 运行时以及依赖项的包。

PyInstaller 包可帮助您构建应用程序的可再发行包。用户无需安装 Python、Kivy 或任何其他库即可运行该应用程序。

要构建这样的可发行包,您应该首先使用 PIP 命令在当前 Kivy 环境中安装 PyInstaller。

pip3 install -U pyinstaller

下一步是将一个或多个 Python 源文件(扩展名为 .py)以及其他资源(如图像文件等)收集到一个单独的文件夹中。

对于本练习,我们将为 ImageButton 应用程序构建一个包。此应用程序的文件存储在 imgbtn 文件夹中。

C:\kivyenv\imgbtn 目录
forward.png main.py pause.png play.png
previous.png

创建另一个文件夹 ImangBtnApp,最终将存储可分发包。从文件夹中执行以下命令 −

(kivyenv) C:\kivyenv\ImageBtnApp>pyinstaller -n ImageBtnApp
c:\kivyenv\imgbtn\main.py

Kivy 应用程序有很多依赖项。因此,收集所有这些依赖项可能需要一段时间。最终,ImageButtonApp 文件夹将填充 −

Directory of C:\kivyenv\ImageBtnApp

27-07-2023 21:25    <DIR>           .
27-07-2023 21:07    <DIR>           ..
27-07-2023 21:25    <DIR>           build
27-07-2023 21:28    <DIR>           dist
27-07-2023 21:25                    970 ImageBtnApp.spec

dist 文件夹是可分发文件夹,您将在其中找到 EXE 文件"ImageBtnApp.exe",以及所需的 DLL 库,例如 sdl2 等。

有一个应用程序名称的 spec 文件。我们需要编辑 spec 文件以添加依赖项挂钩,以正确构建 exe。

使用您最喜欢的编辑器打开 spec 文件,并在 spec 的开头添加这些行 −

from kivy_deps import sdl2, glew

向下滚动 spec 文件以找到 COLLECT 部分并为依赖项的每个路径添加一个 Tree 对象。例如 *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)].

coll = COLLECT(
   exe, Tree('c:\kivyenv\imgbtn\'),
   a.binaries,
   a.zipfiles,
   a.datas,
   *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
   strip=False,
   upx=True,
   upx_exclude=[],
   name='ImageBtnApp',
)

现在我们使用 − 在 ImageBtnApp 中构建 spec 文件

python -m PyInstaller ImageBtnApp.spec

编译后的包将位于 ImageBtnApp\dist\ImageBtnApp 目录中。

您还可以使用 Pyinstaller 命令行语法的 -onetime 开关将运行时、应用程序代码和依赖项放在单个文件中(而不是可分发包)−

pyinstaller --onefile -n ImageBtnApp

要构建针对 Android 的可分发包,您需要使用 Buildozer 工具。它会下载并设置 pythonfor-android 的所有先决条件,包括 android SDK 和 NDK,然后构建一个可以自动推送到设备的 apk。

导航到您的项目目录并运行 −

buildozer init

这会创建一个 buildozer.spec 文件来控制您的构建配置。使用您的应用名称等编辑文件。您可以设置变量来控制传递给 python-for-android 的大多数或所有参数。最后,插入您的 android 设备并运行 −

buildozer android debug deploy run

在您的设备上构建、推送和自动运行 APK。