分类:Kivy
Kivy速成教程
1、引言
Kivy是用Python编写的开源跨平台GUI框架,用于开发多平台应用程序(如Windows、macOS、Linux、Android、iOS等)。
它基于OpenGL ES 2构建,采用自绘UI的方式替代依赖原生系统组件,因此能在不同平台上保持界面和交互逻辑的高度一致性。Kivy引入了专门的Kv语言,允许开发者将UI布局与业务逻辑分离,简化复杂界面的设计流程;同时原生支持多点触控、手势识别等交互特性,非常适合开发游戏、多媒体展示、交互式工具等对界面动态性要求较高的应用。此外,Kivy拥有活跃的社区生态,提供了丰富的扩展库(如KivyMD等Material Design风格组件库),帮助开发者快速实现美观且功能完善的跨平台应用。
使用 Kivy,您可以创建运行以下应用程序:
- *台式电脑:macOS、Linux、BSD Unix、Windows。
- iOS 设备:iPad、iPhone。
- 安卓设备:平板电脑、手机。
- 任何其他支持TUIO的触控专业/自制设备 (有形用户界面对象)
Kivy 赋予你一次编写代码并运行它的自由 不同平台上的现状。
您将使用 Kivy:
- 学习:使用Kivy语言编程的基础知识。
- 探索:Kivy 框架。
- 创建:一个简单的跨平台应用程序。
- 打包:适用于您选择的平台。
最后, Deploy您将学习如何在您选择的设备上部署。
2、安装 Kivy
本文Kivy版本基于Kivy 2.3.1 ,支持 Python 版本 3.8 - 3.13
使用 pip安装
安装 Kivy 最简单的方法就是pip。
在安装 Kivy 之前,需要预装 Python 和 pip。 然后,启动一个新终端。在终端中, 更新pip以及其他安装 依赖项使您的最新版本如下所示(对于Linux用户,您可能需要替代python3而不是python并添加一个--user flag。
Windows:
python -m pip install --upgrade pip setuptools virtualenv
linux:
python3 -m pip install --upgrade pip setuptools virtualenv
创建虚拟环境
创建一个新的虚拟环境 适用于您的 Kivy 项目。虚拟环境可以避免可能的安装冲突。 与其他 Python 版本和软件包兼容。虽然是可选的 ,但强烈建议这样做 :
在当前目录下创建名为 kivy_venv 虚拟环境:
python -m venv kivy_venv
激活虚拟环境
source kivy_venv/bin/activate (linux)
安装Kivy
最简单的方法是安装当前稳定版本的 kivy ,还可以选择 kivy_examples 使用 kivy 团队提供的 PyPi wheels。只需执行以下操作:
python -m pip install "kivy[base]" kivy_examples
通过源安装
略
安装预发布版、预编译的 wheel 文件
要安装 Kivy 最新预发布版本的预编译 wheel 文件,而不是当前稳定版本,请在 pip 命令中添加 --pre 标志:
python -m pip install --pre "kivy[base]" kivy_examples
只有当 Kivy 发布了开发版本时,此操作才会安装该开发版本。 PyPi 。或者,也可以从 Kivy 服务器安装最新的 Nightly wheel 包:
python -m pip install kivy --pre --no-deps --index-url https://kivy.org/downloads/simple/
python -m pip install "kivy[base]" --pre --extra-index-url https://kivy.org/downloads/simple/
开发安装
略
3. 第一个应用
入门
我们先来创建一个非常简单的 Kivy 应用并让它运行起来。创建一个用于存放游戏的目录,并在其中创建一个名为 main.py 的文件。
from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
pass
class PongApp(App):
def build(self):
return PongGame()
if __name__ == '__main__':
PongApp().run()
运行该应用程序。此时应该只会显示一个黑色窗口。我们创建了一个非常简单的 Kivy App ,它创建了 PongGame Widget 类的一个实例,并将其作为应用程序 UI 的根元素返回。此时,您可以将其想象成一个 Widget 层级树。Kivy 会将这个 Widget 树放置在默认的 Window 窗口中。下一步,我们将通过定义 PongGame widget 外观来绘制 Pong 的背景和分数。
添加简单图形
我们将使用 .kv 文件来定义 PongGame 类的外观和风格。由于我们的 App 类名为 PongApp ,我们可以直接在应用程序运行时自动加载同一目录下的 pong.kv 文件。因此,请创建一个名为 ``pong.kv`` 的新文件,并添加以下内容。
#:kivy 1.0.9
<PongGame>:
canvas:
Rectangle:
pos: self.center_x - 5, 0
size: 10, self.height
Label:
font_size: 70
center_x: root.width / 4
top: root.top - 50
text: "0"
Label:
font_size: 70
center_x: root.width * 3 / 4
top: root.top - 50
text: "0"
kv 文件的名称(例如 pong.kv)必须与应用程序的名称(例如 PongApp)匹配(App 结尾之前的部分)。