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