当前位置: 欣欣网 > 谈车

Kivy,一个跨平台GUI王者的Python库!

2024-12-12谈车

Kivy,一个跨平台GUI王者的Python库!

说到制作桌面应用程序,可不得不提Python的 Kivy库 。我用了好几年,越用越觉得它厉害!跨平台开发小程序,真是又快又好。你们知道吗,用它甚至能开发手机APP,这也太牛了吧!


1.

Kivy是个啥?


简单来说,Kivy就是个用Python写界面的工具库。它特别厉害的地方在于,你写一次代码,到哪都能用 - Windows、Mac、Linux、Android、iOS统统不在话下!代码写起来也特别顺手,界面设计还可以用它特有的Kv语言,把界面和功能分开写,代码看着贼清爽。


from kivy.app import App

from kivy.uix.button import Button

class HelloApp(App):

def build(self):

return Button(text='点我呀!')

HelloApp().run()

温馨提示:第一次接触Kivy的小伙伴记得先装好依赖包哦!用pip安装就成: pip install kivy


2.

Kivy的独门绝技


说实话,最让我佩服的就是它的触摸支持了。不管是点击、拖拽还是多点触控,统统不在话下。写个简单的画板应用轻轻松松:


from kivy.app import App

from kivy.uix.widget import Widget

from kivy.graphics import Line

class DrawBoard(Widget):

def on_touch_down(self, touch):

with self.canvas:

touch.ud['line'] = Line(points=[touch.x, touch.y])

def on_touch_move(self, touch):

touch.ud['line'].points += [touch.x, touch.y]

class DrawApp(App):

def build(self):

return DrawBoard()

3.

界面布局有妙招


布局这块儿可有意思了!Kivy提供了各种各样的布局方式,就跟搭积木似的。BoxLayout、GridLayout、FloatLayout随你挑,想咋排就咋排:


from kivy.uix.boxlayout import BoxLayout

from kivy.uix.button import Button

layout = BoxLayout(orientation='vertical')

layout.add_widget(Button(text='按钮1'))

layout.add_widget(Button(text='按钮2'))

4.

动画效果不用愁


要说最炫的还得是动画效果,几行代码就能让界面动起来,看着多带劲儿:


from kivy.animation import Animation

anim = Animation(pos=(100, 100), duration=1) + Animation(size=(200, 200))

anim.start(my_widget)

温馨提示:动画叠加的时候要当心,别叠太多容易卡噢!


5.

自定义控件随心配


Kivy最棒的地方在于它的可扩展性,想整啥控件自己造就完事了:


from kivy.uix.widget import Widget

from kivy.properties import NumericProperty

class MyWidget(Widget):

score = NumericProperty(0)

def increase_score(self):

self.score += 1

大家用Kivy开发的时候记得多查查官方文档,里面有不少现成的例子。我就是这么一点一点摸索过来的,踩过的坑不计其数。不过只要坚持下去,你也能写出特别炫酷的应用!


写好的程序打包发布也很简单,用pyinstaller或者buildozer就能搞定。要是遇到问题也别怕,社区里的大佬们都可热心了!