一、前言

在 Python 的生态中,除了常见的 TkinterPyQtwxPython 之外,还有一个相对小众但非常强大的 GUI 框架——Kivy

Kivy 不仅支持 Windows、Linux、macOS,还可以直接打包到 Android 和 iOS,实现真正的“一套代码多端运行”。

如果你想用 Python 做一个桌面工具、移动端 App 或者交互式界面,Kivy 是一个非常值得尝试的框架


二、Kivy 简介

✅ 1. 官方简介

Kivy 是一个用于快速开发多点触控应用的开源 Python 框架。
它基于 OpenGL ES2,使用自定义的渲染引擎,拥有现代化的界面与动画系统。

项目地址

✅ 2. 框架特性

特性 说明
📱 跨平台 一套代码可运行于 Windows / macOS / Linux / Android / iOS
🧩 模块化 内置丰富的控件(Button、Label、Slider、Layout等)
🎨 高度可定制 可使用 KV 语言定义界面结构与样式
🎬 动画友好 支持动画、手势、多点触控等交互
🪶 轻量高效 基于 OpenGL 渲染,性能良好

三、安装与环境配置

Kivy 的安装方式非常简单,推荐使用 pip

pip install kivy

如果你需要支持音频、视频等多媒体功能,可安装完整版本:

pip install "kivy[base,media]"

验证是否安装成功:

python -m kivy

若输出类似以下内容,说明安装成功:

[INFO   ] [Kivy        ] v2.x.x
[INFO   ] [Python      ] v3.x.x

四、第一个 Kivy 程序:Hello World 👋

下面我们来写一个最经典的 “Hello World” 界面程序。

🧾 示例代码:main.py

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text="Hello, Kivy!", font_size=40)

if __name__ == "__main__":
    MyApp().run()

运行后,会弹出一个窗口,界面上显示一行文字 “Hello, Kivy!”


五、使用 KV 语言定义界面

Kivy 提供了一种类似 XML 的 KV 语言,用于定义界面布局,让 UI 与逻辑分离,结构更清晰。

🧩 目录结构示例

project/
│
├── main.py
└── myapp.kv

💻 main.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class MyLayout(BoxLayout):
    pass

class MyApp(App):
    pass

if __name__ == '__main__':
    MyApp().run()

🎨 myapp.kv

<MyLayout>:
    orientation: "vertical"
    padding: 20
    spacing: 10

    Label:
        text: "Kivy 界面示例"
        font_size: 32

    Button:
        text: "点击我"
        on_press: app.on_button_click()

<MyApp>:
    MyLayout:

App 类中,你还可以添加逻辑:

class MyApp(App):
    def on_button_click(self):
        print("按钮被点击了!")

六、Kivy 的常用控件

控件名 功能
Label 显示文本
Button 按钮
TextInput 文本输入框
Image 显示图片
Slider 滑块
BoxLayout / GridLayout / AnchorLayout 布局容器
ScreenManager 多页面切换

七、典型应用场景

场景 说明
🎮 游戏原型开发 快速实现 2D 游戏界面与交互
🧰 桌面工具 写一些跨平台的桌面小工具(如下载器、转换器)
📱 移动端应用 打包成 APK 或 IPA,用于 Android / iOS
🧠 教育与数据可视化 做交互式教学软件或图形展示工具
🎛️ 硬件交互界面 用于树莓派、触摸屏控制系统等 IoT 应用

八、打包与发布

Kivy 支持多平台打包:

  • Windows / macOS / Linux
    使用 PyInstallerBriefcase

  • Android
    使用官方工具 Buildozer

    pip install buildozer
    buildozer init
    buildozer -v android debug
    
  • iOS
    使用 Kivy iOS 构建工具。


九、总结

Kivy 是一个非常独特的 Python GUI 框架:

  • 不依赖原生控件
  • 拥有独立的渲染与布局系统
  • 能让 Python 程序一键上移动端

虽然它在企业级桌面开发中不如 PyQt 常见,但对于想尝试 快速原型、移动端实验项目、教育软件 的开发者来说,是一个极具创造力的选择。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐