Kivy 教程

2025年3月17日 | 阅读18分钟
Kivy Tutorial

Kivy教程提供了Kivy的基础和高级概念。我们的Kivy教程专为初学者和在职专业人士设计。

Kivy是一个适用于Python跨平台应用程序开发框架。它允许我们在各种平台(如WindowsLinuxAndroid、macOS、iOS和Raspberry Pi)上开发跨平台应用程序。

在我们的Kivy教程中,我们将讨论以下主题 -


什么是Kivy?

  • Kivy是一个用于Python的开源图形用户界面(GUI)开发平台。
  • 它帮助我们使用NUI(自然用户界面)开发移动应用程序多点触控应用程序软件
  • 它允许开发人员编写一次应用程序,并在所有设备上使用。
  • 它还可以访问移动API来操作手机上的摄像头、GPS定位、振动器等
  • 它包含创建应用程序的各种组件,例如
    • 基于OpenGL ES 2的图形库
    • 一系列支持多点触控的控件
    • 中间件Kv语言,用于设计自定义控件。
    • 对鼠标、键盘、TUIO以及操作系统特定多点触控事件等输入设备的广泛支持。

Kivy的特性

Kivy具有以下酷炫的特性 -

1. 视频

Kivy包含各种模块来播放视频文件和流。Kivy视频播放器还支持一些与视频相关的常见需求,例如播放、暂停、停止按钮,可用作字幕的文本,在视频上向用户显示消息等。

示例:pygame视频提供程序支持Linux上的MPEG1。

2. 多点触控和手势

Kivy使用广泛的控件,支持多点触控和手势。Kivy开发人员提供了一个手势库来记录用户的各种手势。

我们可以记录以下三种手势 -

  • 从左到右的水平线
  • 从右到左的水平线
  • 从下到上的垂直线

3. UI特性

Kivy附带许多控件和组件,可以使我们的移动界面更具吸引力和美观性。它还用于改进单手操作、导航手势、创建新图标或设计元素、暗模式和新动画。

4. 视觉效果和OpenGL

Kivy使用PyGame轻松创建新游戏。PyGame附带各种模块,用于绘制形状、处理颜色和播放音乐。

5. 灵活

Kivy更加灵活,因为它可以运行在各种设备上,包括Linux、手机、Windows、平板电脑、iOSRaspberry Pi。Kivy的灵活性使其能够快速适应新技术。

6. 免费

Kivy框架完全免费使用。要使用Kivy,您的系统上必须安装1 GHz 32位(x86)或64位(x64)CPU、1 GBRAM、128 MB显存和Python。


Kivy的优缺点

优点

Kivy的优点列表如下 -

  • Kivy帮助我们设计具有多点触控功能的创新用户界面。
  • 它可以与Windows、Android、Linux、iOS、macOS和Raspberry Pi等各种平台流畅运行。
  • 它帮助我们在所有支持的平台上运行代码。
  • 它提供了文档齐全的API。
  • 它提供了更好的程序表示,包括类、控件配置和继承类。
  • 它的性能优于HTML 5。

缺点

  • Kivy使用kV语言,这不适合我们单独编译代码。
  • 它并不总是能跟上最新的Android API。
  • 构建和编译移动应用程序需要花费大量时间。
  • 软件包的大小不必要地巨大。
  • 它缺乏社区支持。

Kivy架构

下面的截图显示了Kivy架构 -

Kivy Tutorial

Kivy架构包含以下组件 -

1. 核心提供程序和输入提供程序

Kivy提供程序主要抽象了各种核心任务,包括打开窗口、显示图像和文本、播放音频、拼写纠正、从摄像头获取图像等

输入提供程序是一段代码,它帮助我们添加对特定输入设备的支持,如TUIO、鼠标模拟器或Apple的触控板。我们还可以通过提供一个读取设备输入数据并将其转换为Kivy事件的新类来添加对新输入设备的支持。

2. 图形

Kivy图形API能够自动优化绘图命令。

3. 核心

Core提供了以下功能 -

  • 时钟
    时钟用于调度定时器事件。时钟支持一次性定时器周期性定时器
  • 缓存
    在Kivy中,缓存用于存储Python对象。我们可以通过以下两种方式控制缓存 -
    • 对象限制
    • Timeout(超时)

注意:我们还可以创建新的Kivy缓存,限制为10个对象,超时时间为5秒。

  • 手势检测
    Kivy使用简单的手势检测,用于检测各种类型的笔画、圆圈、矩形或正方形。
  • Kivy语言
    Kivy语言用于更快速、更轻松地描述用户界面。
  • 性质
    在Kivy中,属性类用于将我们的控件代码链接到用户界面描述。

4. UIX

UIX模块通常包含控件和布局,用于快速创建用户界面。

小部件

控件是我们添加到程序中的用户界面组件,用于提供某种功能。

示例:文件浏览器、按钮、列表、滑块等。

布局

布局用于排列控件。

5. 模块

模块是Kivy应用程序启动时可以在Kivy中加载的类。配置文件用于管理模块的加载。

注意:在Kivy中,我们也可以编写自己的模块。

6. 输入事件

Kivy输入事件是Kivy架构的重要组成部分。Kivy抽象包含不同的输入事件,如触摸、鼠标、TUIO、鼠标、MTDev和HIDInput。我们还可以为任何单个输入事件添加二维屏幕内位置。

所有输入类型都由`touch()`类的一个实例表征。`touch()`类实例可以有以下三种状态之一。

  • 向下
  • 移动
  • 向上

7. 控件和输入分派

术语“控件”在GUI编程中经常用于描述程序中与用户交互的部分。在Kivy中,控件作为接收输入事件的对象。所有控件都以控件树的形式排列。一个控件可以包含任意数量的子控件或不包含任何子控件。

每当新数据可用时,Kivy会为每次触摸发送一个事件。每个事件首先由控件树的根控件接收。


Kivy在Windows上的安装

要在Windows上安装Kivy,首先,我们需要在系统上安装Python和Anaconda。

请按照以下步骤安装Python -

步骤1:将以下链接复制并粘贴到任何浏览器中,或者直接单击以下链接 - https://pythonlang.cn/

步骤2:屏幕上将出现以下页面,在其中单击Downloads,然后从下拉菜单中选择Windows

Kivy Tutorial

步骤3:选择Windows的Python发行版本。

Kivy Tutorial

步骤4:双击下载的文件,屏幕上将出现以下窗口,单击Install Now

Kivy Tutorial

步骤5:下图显示Python正在安装中。

Kivy Tutorial

步骤6:下图显示安装已成功完成。只需单击Close按钮。

Kivy Tutorial

现在,请按照以下步骤下载Anaconda -

步骤1:单击以下链接安装Anaconda https://anaconda.net.cn/products/individual

步骤2:屏幕上将出现以下页面。向下滚动窗口,然后在屏幕底部单击64-bit Graphical Installer (446 MB)

Kivy Tutorial

步骤3:您可以看到Anaconda图形安装程序已开始下载。下载完成后,双击该可执行文件。屏幕上将出现以下窗口,单击Next

Kivy Tutorial

步骤4:将出现一个许可证协议窗口,单击I Agree.

Kivy Tutorial

步骤5:在“安装类型”中,选择Just Me (recommended)

Kivy Tutorial

步骤6: 浏览您想要安装Anaconda的位置,然后单击Next

Kivy Tutorial

步骤7: 将出现“高级安装选项”窗口,选中Register Anaconda3 as my default Python 3.7。然后单击Install

Kivy Tutorial

步骤8:下图显示Anaconda正在安装中。

Kivy Tutorial

步骤9:安装完成后,单击Next按钮。

Kivy Tutorial

步骤10:屏幕上将出现以下窗口,单击Next

Kivy Tutorial

步骤11:将出现一个“完成Anaconda设置”窗口,在该窗口上单击Finish

安装Kivy

安装完Anaconda后,我们就可以安装Kivy了。

安装Kivy的步骤如下 -

步骤1:转到Anaconda Prompt。

步骤2:在安装Kivy之前,请使用以下命令先更新pip。

步骤3:安装依赖项

在安装Kivy时,我们需要安装以下3个依赖项。

 
 

步骤4:安装Kivy

使用以下命令安装Kivy。


创建Kivy的“Hello World”程序

创建Kivy的“Hello World”程序的步骤如下 -

步骤1:打开任何文本编辑器(记事本或Notepad++)

步骤2:在编辑器中编写以下代码。

步骤3:将文件保存为.py扩展名,例如Javatpoint.py

步骤4:打开Anaconda Prompt,并提供保存Kivy程序的有效路径。

步骤5:要运行程序,请使用以下命令并按Enter键。

运行命令后,屏幕上将出现以下输出。

Kivy Tutorial

在Kivy中添加图片控件

Kivy图片控件使用kivy.uix.image模块显示图片。有两种方法可以在Kivy中添加图片。

从系统加载

从系统加载时,图片控件用于从系统加载图片。

以下代码用于在Kivy中添加图片控件。

运行代码后,屏幕上将出现以下输出。

Kivy Tutorial

异步加载

异步加载的图像控件用于从外部Web服务器加载图像。

我们可以使用以下代码从外部Web服务器添加图像。

下图显示了从外部Web服务器添加的图像。

Kivy Tutorial

Kivy按钮

按钮是每个应用程序的重要组成部分。点击按钮时,它会执行一些特定任务。按钮的主要优点是它允许用户直接与软件和应用程序进行交互。

要在Kivy中创建按钮,我们需要从**kivy.uix.button**导入Button。

输出

Kivy Tutorial

创建时尚的按钮

在Kivy中,我们还可以使用各种不同的背景颜色、`size_hint`和`pos`来设计一个时尚的按钮。

下图显示了时尚按钮的输出。

Kivy Tutorial

在按钮中添加图片

Kivy允许我们在按钮中添加图片,使按钮更有效、更具吸引力。

要在按钮中添加图片,我们需要导入以下模块

代码

输出

Kivy Tutorial

Kivy控件

Kivy控件用于在Kivy中开发GUI界面。Kivy控件允许我们创建标签、画布、下拉菜单等。

1. 标签控件

Label控件用于渲染文本。为了使标签更具吸引力,我们可以在标签中添加字体大小、颜色和文本颜色。

要创建标签,我们需要导入**from kivy.uix.label import Label**模块。

代码

输出:下图显示了标签的输出。

Kivy Tutorial

3. 复选框

复选框也称为选择框、勾选框。它用于表单中,使表单选项更容易阅读和回答。

代码

下图显示了复选框的输出

Kivy Tutorial

Slider (滑块)

滑块用于处理特定数字值,范围在预设的最小值和最大值之间。通常,滑块在手机上用于增加和减小音量以及手机的亮度。

要创建滑块,首先,我们必须导入**from kivy.uix.slider import Slider**模块。

在Kivy中,我们使用以下代码创建范围滑块。

代码

下图显示了滑块的输出。

Kivy Tutorial

注意:Kivy还支持归一化滑块,其最小值是0,最大值是1。

开关控件

Switch控件只有两个状态(开或关)。

要创建Switch控件,我们需要导入**from kivy.uix.switch import Switch**模块。

代码

输出:下图显示了Switch控件的输出。

Kivy Tutorial

Progress Bar (进度条)

进度条是最重要的图形控件之一,用于分析操作的进度,例如下载进度、文件传输进度、加载应用、保存更新和安装进度

要创建进度条,首先导入以下模块

from kivy.uix.progressbar import ProgressBar

输出

Kivy Tutorial

点击“开始”后,屏幕上将出现以下进度条。

Kivy Tutorial

Kivy布局

布局是图形设计中最重要的术语。它用于排列元素以获得更好的外观。

我们通常在Kivy中使用以下不同类型的布局。

1. GridLayout

GridLayout旨在以矩形网格的形式排列组件。在GridLayout中,每个矩形网格的大小都完全相同。

要在Kivy中创建Grid布局,首先,我们需要导入以下GridLayout模块 -

实现Grid布局

下图显示了Grid布局的输出。

Kivy Tutorial

2. BoxLayout

BoxLayout用于根据轴(X轴(水平)和Y轴(垂直))排列组件。

要导入BoxLayout,我们需要使用以下模块导入BoxLayout

实现BoxLayout

下图显示了BoxLayout的输出。

Kivy Tutorial

3. FloatLayout

FloatLayout用于根据当前窗口的大小(以窗口的高度和宽度为单位)放置元素。

FloatLayout包含`pos_hint`和`size_hint`,它们是其子项的属性。

注意1:FloatLayout主要用于移动应用程序。

注意2:默认情况下,所有控件的`size_hint`都是(1,1)。

要创建FloatLayout,我们需要导入以下模块。

实现FloatLayout

下图显示了FloatLayout的输出。

Kivy Tutorial

4. AnchorLayout

AnchorLayout用于将边框对齐到顶部、底部、左侧、右侧或中心。

AnchorLayout使用以下参数进行初始化

  • anchor_x = (可传递参数:“left”、“right”和“center”)
  • anchor_y = (可传递参数:“top”、“bottom”和“center”)

我们可以使用以下模块实现Anchor Layout。

以下代码用于创建AnchorLayout。

输出

Kivy Tutorial

5. StackLayout

StackLayout帮助我们垂直和水平排列按钮。在StackLayout中,并非所有按钮的大小都必须相同,因此我们可以根据需要排列按钮。

要创建StackLayout,我们需要导入以下模块。

代码

StackLayout的输出如下所示。

Kivy Tutorial

弹出窗口是一种突然出现在屏幕上的窗口。通常,当用户访问页面或关闭窗口时,会弹出对话框。

在Kivy中,我们使用以下代码创建弹出窗口。

输出

下图显示了弹出窗口的输出 -

Kivy Tutorial

点击弹出窗口后,屏幕上将出现以下屏幕。

Kivy Tutorial

在Kivy中创建登录窗口

现在,我们将使用Kivy创建一个简单的登录页面。要在Kivy中创建登录页面,我们需要创建以下两个文件 -

  1. .py 文件 - .py 文件是使用Python编写的脚本文件。它可以在任何文本编辑器中创建,但需要Python解释器来运行。
  2. .kv 文件 - .kv 文件类似于HTML中的CSS文件。

注意:这里,我们使用.kv文件来创建登录窗口。

.py 文件

.kv 文件

运行代码后,屏幕上将出现以下窗口。

Kivy Tutorial

情况1:如果用户名和密码为空,则屏幕上将出现以下屏幕。

Kivy Tutorial

情况2:如果我们输入无效的用户名和密码,屏幕上将出现以下屏幕。

Kivy Tutorial

情况3:如果我们输入用户名admin和密码admin,则屏幕上将出现以下屏幕。

Kivy Tutorial

前提条件

在学习Kivy之前,您必须具备Python的基本知识,这样才能轻松理解Kivy的概念。

目标受众

我们的Kivy教程专为初学者和在职专业人士设计。

问题

我们保证您在学习Kivy教程时不会遇到任何困难。但如果发现任何错误,请在联系表单中提交您的问题。