
众所周知,
Python的范围很广:从Web技术到游戏行业,再到
NASA项目结束。 Python几乎可以在任何地方使用:从掌上电脑和智能手机到网络服务器,以及几乎所有知名平台,例如
Windows,Linux / UNIX,macOS,Palm OS,Raspberry PI等。 得益于
Kivy框架
, Python在2011年
还掌握了用于开发
iOS和
Android应用程序的移动平台,并且在2015年
, Python使用
KivyMD库学习了
Material Design的使用。
KivyMD库是
Material Design风格的小部件的集合,可在
Kivy跨平台框架中使用。 在一年前发布的上一篇文章
KivyMD-life go on中 ,我已经谈到了该库的派生,但是在
问题和邮件中,我经常收到
有关从
PyPi安装
KivyMD时在派生中声明的功能不可用的
通知 。 确实如此,因为
PyPi包含了四年前
GitLab存储库中的旧版本库,作者不再支持该库,并且由于我们不想为我们的fork使用新的名称(例如KivyMD-fork),
因此使用该库将程序包加载到
PyPi中名字,决定写信给
KivyMDAndrésRodríguez (@mixedCase_)的作者,并要求他删除他的包裹。 经过长时间的讨论,Andre邀请我们加入
Python Package ,但前提是他仍是该库的合著者。 因此,现在正式的图书馆资料库在
这里 ,我们的最新更新可在
PyPi中
获得 。
那么,一年后图书馆发生了什么变化? 感谢那些在项目中使用
KivyMD的人,我们消除了很多错误。 存储库中有81个封闭的问题。 这是如果您不考虑在
Discord 在线聊天用户支持中解决了大部分问题的事实。 其中有俄语和英语两个部分。 当前并非所有
材料设计规范都得到实施,因为几乎有两个人在空闲时间在图书馆工作。 可以
在此列表中查看已实施的内容和我要实施的内容。 它远未完成,但您可以对其进行补充,因为所有人都可以使用编辑权限。 以下是一些新的小部件:
工具提示
材料设计工具提示代码示例from kivy.lang import Builder from kivy.factory import Factory from kivymd.app import MDApp Builder.load_string(''' #:import random random #:import hex_colormap kivy.utils.hex_colormap #:import get_color_from_hex kivy.utils.get_color_from_hex #:import md_icons kivymd.icon_definitions.md_icons #:set ICONS list(md_icons.keys()) <IconButtonTooltips@MDIconButton+MDTooltip> <ExampleTooltips@BoxLayout> orientation: 'vertical' MDToolbar: title: "Example Tooltips" md_bg_color: get_color_from_hex(hex_colormap["crimson"]) elevation: 10 left_action_items: [['dots-vertical', lambda x: None]] tooltip_text: "MDToolbar" Screen: BoxLayout: size_hint: None, None size: self.minimum_size padding: "10dp" spacing: "10dp" pos_hint: {'center_x': .5, "center_y": .9} IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" ''') class Test(MDApp): def build(self): return Factory.ExampleTooltips() Test().run()

* Mac OS示例底部应用栏
材质设计底部应用栏左侧是
Flutter演示应用程序中
Bottom App Bar工作原理的示例,右侧是
KivyMD Bottom App Bar库的演示。
代码示例 from kivy.factory import Factory from kivymd.app import MDApp from kivy.lang import Builder Builder.load_string( """ <BottomAppBar@Screen> BoxLayout: spacing: dp(10) orientation: 'vertical' MDToolbar: title: "Title" md_bg_color: app.theme_cls.primary_color left_action_items: [['menu', lambda x: x]] Widget: MDBottomAppBar MDToolbar: title: "Title" icon: "git" type: "bottom" left_action_items: [["menu", lambda x: x]] """ ) class BottomAppBarTest(MDApp): def build(self): return Factory.BottomAppBar() BottomAppBarTest().run()
背景幕
材料设计背景左侧是
Flutter演示应用程序中
Backdropr如何工作的示例,右侧是
KivyMD库的
Backdropr的
演示 。
我们还在库中添加了“
研究”部分,该部分将托管演示应用程序,例如
Shrine ,
Basil等。 现在,您可以看到
Shrine应用程序的外观:
这是同一件事,但来自
Flutter应用程序:
因此
KivyMD可以在
Android设备上使用。 当然,在某些地方存在性能问题,但这很可能与
Kivy本身有关。 例如,启动“繁重的”库仍然存在问题。 在下面的视频中,我给出了一个使用
OpenCV作为
Android相机后端的示例应用程序:
在这种情况下,什么也做不了,因为在开始时,不仅
会加载
OpenCV和
NumPy ,而且还会进行本机调用以连接所有这些。 但是,在
Kivy和
KivyMD上设计良好的移动应用程序很快
就会启动。 所有这些都适用于移动平台。 在桌面上没有这样的问题,并且
KivyMD在
那里看起来简直
太美了 :
Mac OS:
Windows:
原则上,所有这些都可以在哪个操作系统上运行,因为
KivyMD和
Kivy一样,到处看起来都是一样的。 您必须自己决定您的应用程序将具有哪种应用程序,我认为这仅仅是一个优点。
我们有很多计划,但手不够。 例如,尽管没有时间来完善台式机系统的文件管理器,但我想引入对iOS小部件的支持以及更多其他功能……但是,尽管存在所有缺点,但每天下载量和对该库的兴趣却在不断增长:
如果您像我们一样热爱Python,请加入社区!
YouTube频道KivyMD新闻不和谐聊天