【Python 第三方库】kivy

2024-01-25 00:00:00

目录:

Kivy 模块介绍

Kivy 允许开发者使用一套代码,即可构建能在 Windows、macOS、Linux、Android 和 iOS 上运行的应用程序,尤其擅长处理现代触控交互。核心基于 OpenGL ES 2 图形引擎,确保了界面的流畅动画与高性能渲染。

安装依赖:

$ pip install kivy -i https://pypi.tuna.tsinghua.edu.cn/simple

基础使用

任何 Kivy 应用都始于一个继承自 kivy.app.App 的类,并必须重写其 build() 方法,该方法返回应用的根组件。

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

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

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

运行上述代码,会弹出一个显示 “Hello, Kivy!” 的窗口。

KV 语言

运行程序,会默认加载与应用类同名(去掉’App’后缀)的 .kv 文件,kv 文件描述界面。

比如主类名是 HelloApp,会默认加载同目录下的 hello.kv 文件。

# test.py
from kivy.app import App

class HelloApp(App):
    pass

if __name__ == "__main__":
    HelloApp().run()
# hello.kv
<HelloApp>:
    Label:
        text: "Hello, Kivy with KV!"
        font_size: 30
        color: 0.2, 0.6, 0.8, 1  # RGBA颜色

布局

  • BoxLayout:沿水平或垂直方向线性排列组件;
  • GridLayout:在网格中排列组件,需指定行数(rows)或列数(cols);
  • FloatLayout:允许通过绝对或相对坐标自由定位组件;
  • RelativeLayout:子组件可以相对于布局或其他组件进行定位。

构件

在 Kivy 中,一切界面元素都是 Widget。常用构件:Label (标签), Button (按钮), TextInput (文本框), Slider (滑动条) 等。

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

class MyApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        layout.add_widget(Button(text='Button 1'))
        layout.add_widget(Button(text='Button 2'))
        return layout

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

事件

如下示例演示了按钮点击事件。

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

class MyApp(App):
    def build(self):
        button = Button(text='Click me!')
        button.bind(on_press=self.on_button_press)  # 绑定事件到处理函数
        return button

    def on_button_press(self, instance):
        print('Button pressed!')
        instance.text = 'Pressed!'  # 点击后改变按钮文本

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

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: