目录:
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!” 的窗口。
运行程序,会默认加载与应用类同名(去掉’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颜色
在 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()
↶ 返回首页 ↶