تحية طيبة!منذ وقت ليس ببعيد، وكتبوا عن بيثون في التنمية النقالة و تطوير التطبيقات النقالة في بيثون باستخدام مكتبات Kivy وKivyMD . ستستمر هذه المقالة في تعريفك بأدوات Python عبر الأنظمة الأساسية ، وبالتحديد اليوم سننظر في العناصر الجديدة التي ظهرت في مكتبة KivyMD مؤخرًا.KivyMD هو إضافة إلى إطار عمل Kivy (أداة متعددة المنصات تركز على تطوير التطبيقات الحديثة بدعم اللمس المتعدد) ، والتي توفر للمستخدم مجموعة من الأدوات "من Google". في علامات الاقتباس ، لأنه تحت غطاء محرك السيارة ، يستخدم KivyMD Kivy ، الذي يسحب بدوره SDL2 و OpenGL ES 2.0 لتقديم واجهة المستخدم ، أي ، كما هو الحال في 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 ، لم يتم تنفيذ جميع الوظائف من DataTables التي تتضمن مواصفات التصميم المتعدد حتى الآن ، ولكننا نعمل على التحسينات.MDDialogs
تم تبسيط وتحسين استخدام مربعات الحوار - الآن تتوافق مع مواصفات تصميم المواد. 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
في 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()
حقل MDText
حقل نص مضاف مع وضع التعبئة :MDTextField:
hint_text: "Fill mode"
mode: "fill"
fill_color: 0, 0, 0, .4
جميع فئات حقول النص لديها القدرة على ضبط الرمز على اليمين:MDMenu
أداء محسن لفئة 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 الرسمية متاحة بالفعل. هذا كل شيء الآن ، شكرا للمشاهدة!