我真的劝劝大家,真的不要使用kivy,不Bug很多,打包的时候我画了四天的时间都没成功,下面的命令是从官网复制的,我运行它,装了虚拟机.......最后崩溃。
kivy介绍
kivy是一个开源的库gui库, 可以在Windows,mac, linux,android,ios运行,kivy更多介绍可到kivy官网进行查看
功能
kivy安装
确保已经安装了Python, 安装Python详见Python官网, 安装Python后, 打开终端输入如下命令:
pip install Cython
pip install kivy
kv语言介绍
kv语言是kivy提供的一种方便用户编写kivy代码的工具, kv语言和python一样简单易懂,命名规则为继承App的类名去掉App, 后面将用kv语言进行教学
kivy基本布局
kivy的基本布局包涵在kivy的uix里,也封装在kivy的uix里,使用import导入kivy 的uix的布局
from kivy.uix.你要使用的布局 import 布局
kivy基本控件
kivy的控件基本包涵在kivy的uix里, 基本空间有Button, labde, TextInput...
使用import导入kivy.uix里的控件
from kivy.uix.你要使用的控件 import 控件
Label的使用:
Label是kivy的一个标签控件用于写入文本,我们以hello World作示例
py文件
首先导入kivy.uix里的Label以及floatlayaut布局:
from kivy.uix import label
from kivy.app import App
from kivy.uix.floatlayout import Floatlayout
先在python文件中创建一个类app继承Floatlayout布局
class app(floatlayout.FloatLayout):
"""使用‘pass’内容将在kv文件中写"""
pass
再创建一个类,继承App,这个类用来运行我们的ui界面
class myApp(App):
def build(self):
return app()
if __name__ == '__main__':
myApp().run()
kv文件
第一行表是对app这个类进行写入使用FloatLayout布局再在这个布局里创建一个Label,也可以在里面创建多个,但是你就需要调整控件的大小,不然控件会进行重叠因为FloatLayout允许控件重叠,不然就要更换为其它布局,
<app>:
FloatLayout:
Label:
text:'hello World'
# 可以和python一样用‘#’注释
运行结果:
简简单单就在这里创建了一个label
Label常用属性:
属性 | 介绍 |
text | 标签显示的文本 |
color | 字体的颜色,格式为rgba,默认为白色[1,1,1,1] |
font_size | 字体大小, 默认15px |
bold | 是否加粗(Ture或False) |
font_name | 字体文件名(*.ttf) |
笔记:对于kivy显示中文可以对font_name进行设置
Button的使用
Button是kivy中的按钮控件,被按下会发出一个信号,被放开也会发出一个信号,下面以hello World作示例
py文件
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
class app(FloatLayout):
pass
class MyApp(App):
def build():
return app()
if __name__ == '__main__'
MyApp().run()
kv文件
<app>:
FloatLayout:
Button:
text:'hello world'
# 按钮显示的文字
color:'red'
# 按钮字体颜色
font_size:'20px'
# 字体大小
Button常用属性:
属性 | 介绍 |
text | 按钮显示的文字 |
color | 按钮显示字体的颜色 |
font_size | 字体大小(以px为单位) |
font_name | 字体文件名(*.ttf) |
Button常用事件:
事件 | 介绍 |
on_click | 当用户按下按钮时触发 |
on_press | 当用户释放按钮时触发 |
Button事件的绑定
kivy打包
window, linux, mac打包
window, linux, mac都可以用PyInstaller进行打包,安装PyInstaller命令
pip3 install PyInstaller
Android打包
使用虚拟机镜像进行打包
下载一个虚拟机和镜像文件
链接:镜像文件(访问码:gu4z)
安装成功后打开虚拟机,再打开文件管理器, 找到test打开后再里面创建一个文件夹,再在终端打开(注意:终端要切换到项目所在目录),再在终端输入kdpp go修改配置文件后,等待打包完成,就可以在bin文件夹里看到apk文件,传输到手机就可以安装了
使用buildozer打包:
buildozer适用于Linux系统,所以也需要安装虚拟机,安装完虚拟机后,运行虚拟机打开终端输入命令
pip3 install buildozer
再切换到项目所在的位置
cd 你的项目位置
初始化buildozer
buildozer init
修改配置文件后,输入打包命令打包
buildozer android debug run
错误处理
这个过程非常漫长,它要下载android ndk, android jdk...这些东西,我等了好几个小时, .buildozer文件夹建议留着,这样下次打包可以不用再下载