Kivy 自学笔记(一):构建基本的 Kivy 应用

2023年1月14日,更新(纠错)中。

声明:1、本文章总结自该系列视频,且为个人用笔记,转载需注明出处。2、让人不适的评论将会被删评+屏蔽。

一、main.py与.kv文件

  基本的 Kivy 应用需要一个main.py与.kv文件。main.py顾名思义,而.ky文件主要用于搭建窗口布局(类似于PyQt中的.ui文件)。虽然理论上可以在python文件中搭建窗口布局,但本着前后端分离的原则,不建议这么做。
  .kv文件应当与你的应用(类)同名且为小写,若你的应用名为TheLab或TheLabApp(此时kivy会自动忽视“App”三个字母),kivy会自动寻找main.py同路径下名为thelab.kv的文件。
  如下为一对可以运行的文件,依次名为main.py和mytask.kv。

from kivy.app import App
from kivy.uix.widget import Widget

class MainWidget(Widget):
    pass

class MyTask(App):
    pass

if __name__ == '__main__':
    MyTask().run()
MainWidget: # 启动界面

<MainWidget>:
    Button: # 按钮控件
        text: "A" # 内部字符
        size: "40dp", "40dp" # 尺寸
        pos: "50dp", "100dp" # 位置
        color: 1,0,0,1 # 颜色
    Label: # 标签控件
        text: "B"
        size: "100dp", "100dp"
        pos: "200dp", "200dp"

此时main.py运行结果应该如下图。

img1

二、补充解释

1、kivy坐标系

  此窗口应当是可以任意拖动调节大小的,且按钮A与标签B相对于左下角的位置固定。因此需要明确的是,与numpy和opencv均不同,kivy的坐标系原点为窗口左下角,向右为x轴(第一维),向上为y轴(第二维)

2、像素与dp

  为保证控件尺寸在不同像素密度的屏幕上显示大小相同,使用dp作为尺寸单位而不是像素,更加具体的区别请自行百度。格式上,使用dp的尺寸需要加单引号或双引号,而使用像素的尺寸可直接使用数字。如示例代码中的“Button”控件的尺寸,使用dp表示如下。

size: "40dp", "40dp"

而使用像素表示如下。(二者实际看起来大小可能不同)

size: 40, 40

40dp*40dp通常为手指大小。

3、颜色

  颜色分量依次为RGBA,且为浮点数0-1而不是传统的0-255,允许忽略小数点前的0。

4、绘制顺序

  一般情况下,kivy将按顺序绘制控件,这意味着若A和B的位置相同,B将被覆盖绘制在A上。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>