百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

python+kivy实现极致的跨平台跨终端开发体验

wptr33 2025-05-08 21:37 10 浏览

这几天查找python资料的时候,偶然发现了一个专为python打造的gui框架:kivy。这是一个很优秀的,基于python的GUI框架。可以利用Python快速编程的特点,快速编写应用程序。它可以用于为桌面和移动平台(Android,IPhone等,这是wxPython、PyQt这些框架所不具备的)构建多点触控应用程序,可以构建跨平台的桌面应用。

官网:https://kivy.org/#home

开发语言/框架:python/kivy

开发IDE:vscode,nodepad++等

下面准备开始自己的第一个基于kivy+python的跨平台应用程序吧!

  1. 搭建开发环境(基于Windows系统)

安装方式:pip

打包方式:PyInstaller

PS:在安装kivy之前,我们首先需要安装python和pip(请自行度娘安装),目前viky官方最新版本为2.1.0,支持的python版本为3.7-3.10。

安装好以上前置条件后,接下来开始安装kivy。

1)创建虚拟环境

为kivy项目创建一个虚拟环境。这可以防止可能与其他Python版本和包发生的安装冲突,打开dos命令窗口,进入要创建虚拟环境的目录,执行命令:python -m virtualenv kivy_venv,创建名称为kivy_venv的虚拟环境。

注意:如果pip版本较低,也可能会安装不成功,为了保险起见,可先更新pip及其依赖项,执行以下命令:python -m pip install --upgrade pip setuptools virtualenv

2)激活虚拟环境,执行命令:kivy_venv\Scripts\activate。以后每次使用此虚拟环境,都必须从当前目录执行此步骤来设置环境。

3)安装kivy

执行命令:python -m pip install "kivy[base]" kivy_examples。

这将会安装当前最新稳定版本和一些samples,同时也会安装Kivy的最小依赖项。不过要另外安装支持音频/视频的Kivy,请安装kivy[base,media] 或者 kivy[full]。

4)安装kivy依赖/其它更多

执行命令:pip install "kivy[base,media,tuio]",等待安装完成。

以上就完成了kivy环境的搭建,下面开始创建、运行自己的第一个程序吧。

创建我们的第一个应用:test.py

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

激活创建的虚拟环境,执行命令:python test.py,启动程序,如下图所示。

至此完成了kivy开发环境的基本搭建和验证。

相关推荐

MySQL合集-innobackupex在线备份及恢复(全量和增量)

Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品。Xtrabackup由个部分组成:xtrabackup和innob...

MySQL合集-单机容器化

MySQL单机容器化mkdir-p/opt/mysql/{data,etc}cpmy.cnf/opt/mysql/etc#dockersearchmysqldockerpullm...

MySQL合集-小版本升级指南

下载最新的mysqlwgethttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz...

Mysql 数据库运维方案

前言...

如果忘记了 WAMP 中本机数据库(MySQL)的密码,该怎么办?

如果忘记了WAMP中本机数据库(MySQL)的密码,可以通过以下步骤来重置:停止MySQL服务:打开WAMP,点击“停止所有服务”,或者右键点击WAMP图标,在菜单中选择“MySQL...

Linux服务器日常巡检脚本分享

Linux系统日常巡检脚本,巡检内容包含了,磁盘,...

在 SpringBoot 中设计一个订单号生成系统,原理,架构与实战

在SpringBoot中设计一个订单号生成系统,原理,架构与实战首先,我得考虑订单号的基本要求。通常订单号需要唯一性,不能重复,否则会出大问题。然后可能还要有一定的可读性,比如包含日期、时间或者业...

K8S官方java客户端之七:patch操作

欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;...

浅谈Kubernetes CRD和Operator的原理和使用方法

总结CRD的全称是CustomResourceDefinition,是Kubernetes为提高可扩展性,让开发者去自定义资源(如Deployment,StatefulSet等)的一种方法....

kubernetes实用操作:kubectl命令行工具使用全面总结

kubectl作为客户端CLI工具,可以让用户通过命令行对Kubernetes集群进行操作。本节对kubectl的子命令和用法进行详细说明。kubectl用法概述kubectl[command][...

ceph rbd块存储挂载及文件存储建立

cephrbd块存储挂载及文件存储建立一、rbd块存储挂载1创建一个OSDpool...

odps sql中常用的时间处理方法

1、获取当前时间selectgetdate();2、获取昨天(字符串格式)selectto_char(dateadd(getdate(),-1,'dd'),'yyyymmd...

每天一个 Python 库:datetime 模块全攻略,时间操作太丝滑!

在日常开发中,时间处理是绕不开的一块,比如:...

时序异常检测工具:ADTK

1adtk简介智能运维AIOps的数据基本上都是...

又一批长事务,P0故障谁来背锅?

最近几周,发生过多起因为事务问题引起的服务报错。现象为...