рд╕рд╛рдордЧреНрд░реА рдкрд╛рдпрдердиред KivyMD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ


рдЕрднрд┐рд╡рд╛рджрди!

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкрд╛рдпрдерди рдФрд░ рдХрд┐рд╡реА рдФрд░ рдХрд┐рд╡реАрдПрдордбреАрдПрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ ред рдпрд╣ рдЖрд▓реЗрдЦ рдЖрдкрдХреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд╛рдпрдерди рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдЬ рд╣рдо рдЙрди рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд┐рд╡реАрдПрдордбреАрдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рд╣реИрдВред

KivyMD Kivy рдлреНрд░реЗрдорд╡рд░реНрдХ (рдорд▓реНрдЯреАрдЯрдЪ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЯреВрд▓) рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИ , рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "Google рд╕реЗ рд╡рд┐рдЬреЗрдЯ" рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди, рдХреНрдпреЛрдВрдХрд┐ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ, KivyMD Kivy, рдЬреЛ рдмрд╛рд░реА рдореЗрдВ SDL2 рдФрд░ рдУрдкрди ES 2.0 рдЦреАрдВрдЪрддреА рдпреВрдЖрдИ, рдХрд┐ рд╣реИ, рдореЗрдВ рдХреА рддрд░рд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╕реНрдкрдВрджрди , рд╡рд╣рд╛рдБ рдкреНрд░рддрд┐рдкрд╛рджрди рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЗрдВрдЬрди, рд╕рдм рдХреБрдЫ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рд╣реИ - рдпрд╣ рдореВрд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдФрд░ рд╡рд┐рд╡рд╛рдж, рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рддрд░рдл рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред

MDDataTable


рдЗрд╕рд▓рд┐рдП, KivyMD рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (0.104.1) рдореЗрдВ рд╣рдордиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рд╡рд┐рдЬреЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:


рдЙрдкрдпреЛрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

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 рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдбрд┐рдЬрд╝рд╛рдЗрди рдпреБрдХреНрддрд┐ рд╕реЗ рд╕рднреА рдХрд╛рд░реНрдп рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ , рд▓реЗрдХрд┐рди рд╣рдо рд╕реБрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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



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


рднрд░рдг рдореЛрдб рдХреЗ рд╕рд╛рде рдкрд╛рда рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ :


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()


рдЧрд░реНрдо рдкреБрдирдГ рд▓реЛрдб


рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЕрдкрдиреЗ рд╣реЙрдЯ рд░реАрд▓реЛрдб рдЯреВрд▓ (рдордХреНрдЦреА рдкрд░ рд╡рд┐рдЬреЗрдЯ рдЧреБрдг рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛) рдкрд░ рдмрд╣реБрдд рдЧрд░реНрд╡ рд╣реИ ... рдХрд┐рд╡реА рдореЗрдВ, рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд▓рд╛рдЧреВ рд╣реИред рд╣рдордиреЗ рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ KivyMD рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ:


рдФрд░, рд╣рд╛рдБ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ KivyMD рдкреНрд░рд▓реЗрдЦрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рд╕рдм рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣реИ, рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

All Articles