问候!不久前,他们写了在移动开发中的Python和使用的Kivy和KivyMD库在Python移动应用程序的开发。本文将继续使您熟悉跨平台的Python工具,特别是今天,我们将考虑最近在KivyMD库中出现的新项目。KivyMD是Kivy框架(专注于开发具有多点触摸支持的现代应用程序的跨平台工具)的补充,该框架为用户提供了“来自Google”的一组小部件。用引号引起来,因为在后台,KivyMD使用Kivy,这反过来又拉SDL2和OpenGL ES 2.0来呈现UI,也就是说,就像在Flutter中一样,它有自己的引擎来渲染小部件,这意味着您在屏幕上看到的所有内容-这不是本地的。对此有例外和争议,我们将坚决抛弃并继续进行。MDDataTable
因此,在KivyMD最新版本(0.104.1)中,我们终于实现了DataTable小部件:使用的实现非常简单:from kivy.metrics import dp
from kivymd.app import MDApp
from kivymd.uix.datatables import MDDataTable
class Example(MDApp):
def build(self):
data_tables = MDDataTable(
size_hint=(0.9, 0.6),
use_pagination=True,
check=True,
column_data=[
("Desert (100g serving)", dp(70)),
("Calories", dp(30)),
("Fat (g)", dp(30)),
("Carbs (g)", dp(30)),
("Protein (g)", dp(30)),
("Sodium (mg)", dp(30)),
("Calcium (%)", dp(30)),
("Iron (%)", dp(30)),
],
row_data=[
("Frozen yogurt", "159", "6.0", "24", "4.0", "87", "14%", "1%"),
],
)
data_tables.open()
Example().run()
在DataTable中,尚未实现Material Design规范 DataTables中的所有功能,但是我们正在努力进行改进。MD对话框
对话框的使用已得到简化和改进-现在它们符合材料设计规范。 dialog = MDDialog(
title="Reset settings?",
text="This will reset your device to its default factory settings.",
buttons=[
MDFlatButton(
text="CANCEL", text_color=self.theme_cls.primary_color
),
MDFlatButton(
text="ACCEPT", text_color=self.theme_cls.primary_color
),
],
)
dialog.open()
MD卡
在MDCard中添加了进行focus_behavior和ripple_behavior的方法:focus_behavior:MDCard:
focus_behavior: True
波纹行为:MDCard:
ripple_behavior: True
MDCardSwipe:<SwipeToDeleteItem>:
size_hint_y: None
height: content.height
MDCardSwipeLayerBox:
MDCardSwipeFrontBox:
OneLineListItem:
id: content
text: root.text
_no_ripple_effect: True
class SwipeToDeleteItem(MDCardSwipe):
text = StringProperty()
MDTextField
使用填充模式添加了文本字段:MDTextField:
hint_text: "Fill mode"
mode: "fill"
fill_color: 0, 0, 0, .4
在所有类别的文本字段中,都可以在右侧设置图标:菜单
改进了MDMenu类的性能。TapTargetView
添加了TapTargetView小部件:MDFloatingActionButtonSpeedDial
实现了MDFloatingActionButtonSpeedDial小部件:from kivy.uix.screenmanager import Screen
from kivymd.app import MDApp
from kivymd.uix.button import MDFloatingActionButtonSpeedDial
class Example(MDApp):
data = {
'language-python': 'Python',
'language-php': 'PHP',
'language-cpp': 'C++',
}
def build(self):
screen = Screen()
speed_dial = MDFloatingActionButtonSpeedDial()
speed_dial.data = self.data
speed_dial.rotation_root_button = True
screen.add_widget(speed_dial)
return screen
Example().run()
热装
Flutter框架以其热重装工具(快速重装小部件属性)而感到自豪。在Kivy中,这早已实现。我们刚刚改进了此实用程序,并将其包含在KivyMD软件包中:并且,是的,官方的KivyMD文档已经可用。现在就这些,谢谢收看!