Salam pembuka!Belum lama ini kami menulis tentang Python dalam pengembangan Mobile dan pengembangan aplikasi mobile di Python menggunakan pustaka Kivy dan KivyMD . Artikel ini akan terus memperkenalkan Anda dengan alat Python lintas-platform, dan khusus hari ini kita akan melihat item baru yang telah muncul di perpustakaan KivyMD baru-baru ini.KivyMD adalah tambahan untuk kerangka kerja Kivy (alat lintas platform yang berfokus pada pengembangan aplikasi modern dengan dukungan multitouch), yang menyediakan kepada pengguna seperangkat widget "dari Google". Dalam tanda kutip, karena di bawah kap, KivyMD menggunakan Kivy, yang pada gilirannya menarik SDL2 dan OpenGL ES 2.0 untuk membuat UI, yaitu, seperti di Flutter , ada mesin sendiri untuk merender widget, yang berarti semua yang Anda lihat di layar - ini bukan asli Pengecualian dan perselisihan mengenai hal ini, kami akan dengan tegas mengesampingkan dan melanjutkan.MDDataTable
Jadi, dalam versi terbaru KivyMD (0.104.1) kami akhirnya menerapkan widget DataTable:Implementasi penggunaannya cukup sederhana: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()
Di DataTable, belum semua fungsi dari spesifikasi Desain Material DataTable diimplementasikan , tetapi kami sedang berupaya melakukan peningkatan.MDDialogs
Penggunaan kotak dialog telah disederhanakan dan ditingkatkan - sekarang mereka memenuhi spesifikasi desain material. 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()
MDCard
Di MDCard ditambahkan untuk melakukan focus_behavior dan ripple_behavior :focus_behavior :MDCard:
focus_behavior: True
ripple_behavior :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
Bidang teks ditambahkan dengan mode isi :MDTextField:
hint_text: "Fill mode"
mode: "fill"
fill_color: 0, 0, 0, .4
Di semua kelas bidang teks ada kemampuan untuk mengatur ikon di sebelah kanan:MDMenu
Peningkatan kinerja kelas MDMenu.TapTargetView
Menambahkan widget TapTargetView:MDFloatingActionButtonSpeedDial
Menerapkan widget 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()
Hot reload
Kerangka Flutter sangat bangga dengan alat muat ulangnya yang panas (memuat ulang properti widget dengan cepat) ... Di Kivy, ini telah lama diterapkan. Kami baru saja meningkatkan utilitas ini dan memasukkannya ke dalam paket KivyMD:Dan, ya, dokumentasi resmi KivyMD sudah tersedia. Itu saja untuk sekarang, terima kasih sudah menonton!