مادة بايثون. الميزات الجديدة في مكتبة KivyMD


تحية طيبة!

منذ وقت ليس ببعيد، وكتبوا عن بيثون في التنمية النقالة و تطوير التطبيقات النقالة في بيثون باستخدام مكتبات 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,  # use page pagination for table
            check=True,  # use checkboxes for rows
            # Data for header columns (name column, width column).
            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)),
            ],
            # Data for rows.
            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 الرسمية متاحة بالفعل. هذا كل شيء الآن ، شكرا للمشاهدة!

All Articles