
Es ist kein Geheimnis, dass der Umfang von 
Python ziemlich 
groß ist : von Webtechnologien über die Spieleindustrie bis hin zu 
NASA- Projekten. Python funktioniert fast überall: von Handheld-Computern und Smartphones bis hin zu Netzwerkservern und auf fast allen bekannten Plattformen wie 
Windows, Linux / UNIX, MacOS, Palm OS, Raspberry PI und so weiter. Dank des 
Kivy- Frameworks beherrschte 
Python 2011 
auch mobile Plattformen im Hinblick auf die Entwicklung von Anwendungen für 
iOS und 
Android . 2015 lernte 
Python mithilfe der 
KivyMD- Bibliothek den Umgang mit 
Material Design . 
Die 
KivyMD- Bibliothek ist eine Sammlung von Widgets im 
Material Design- Stil zur Verwendung im plattformübergreifenden 
Kivy -Framework. In meinem vorherigen Artikel 
KivyMD - life go on , der vor einem Jahr veröffentlicht wurde, habe ich bereits über Fork dieser Bibliothek gesprochen, aber in 
Problemen und in der E-Mail erhielt ich häufig Benachrichtigungen, dass die in der Fork deklarierten Funktionen bei der Installation von 
KivyMD von 
PyPi nicht verfügbar sind. Und das war wirklich so, denn 
PyPi enthielt vor vier Jahren eine alte Version der Bibliothek aus dem 
GitLab- Repository, die vom Autor nicht mehr unterstützt wurde, und da wir keinen neuen Namen für unsere Fork, wie KivyMD-Fork, verwenden wollten und das Paket damit in 
PyPi laden 
wollten Name, es wurde beschlossen, an den Autor von 
KivyMD Andrés Rodríguez (@mixedCase_) zu schreiben und ihn zu bitten, sein Paket zu entfernen. Nach einigen langwierigen Verhandlungen lud uns Andre zum 
Python-Paket ein , vorausgesetzt, er bleibt Mitautor der Bibliothek. Jetzt ist das offizielle Bibliotheks-Repository 
hier und unsere neuesten Updates sind in 
PyPi verfügbar.
Also, welche Änderungen in der Bibliothek geschahen ein Jahr später? Dank der Leute, die 
KivyMD in ihren Projekten verwenden, haben wir eine Menge Fehler beseitigt. Das Repository enthält 81 geschlossene Fragen. Dies ist der Fall, wenn Sie nicht berücksichtigen, dass der Löwenanteil der Probleme in der Benutzerunterstützung von 
Discord Online Chat behoben ist. Es gibt sowohl russischsprachige als auch englischsprachige Abschnitte. Derzeit sind nicht alle 
Material Design- Spezifikationen implementiert, da fast zwei Personen in ihrer Freizeit an der Bibliothek arbeiten. Was bereits implementiert wurde und was ich implementieren möchte, können Sie 
in dieser Liste sehen . Es ist alles andere als vollständig, aber Sie können es ergänzen, da der Bearbeitungszugriff für alle zugänglich ist. Hier sind einige neue Widgets:
Tooltip
Tooltip für MaterialdesignCodebeispielfrom kivy.lang import Builder from kivy.factory import Factory from kivymd.app import MDApp Builder.load_string(''' #:import random random #:import hex_colormap kivy.utils.hex_colormap #:import get_color_from_hex kivy.utils.get_color_from_hex #:import md_icons kivymd.icon_definitions.md_icons #:set ICONS list(md_icons.keys()) <IconButtonTooltips@MDIconButton+MDTooltip> <ExampleTooltips@BoxLayout> orientation: 'vertical' MDToolbar: title: "Example Tooltips" md_bg_color: get_color_from_hex(hex_colormap["crimson"]) elevation: 10 left_action_items: [['dots-vertical', lambda x: None]] tooltip_text: "MDToolbar" Screen: BoxLayout: size_hint: None, None size: self.minimum_size padding: "10dp" spacing: "10dp" pos_hint: {'center_x': .5, "center_y": .9} IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" ''') class Test(MDApp): def build(self): return Factory.ExampleTooltips() Test().run() 
 
Unten App-Leiste
Material Design App-Leiste untenLinks sehen Sie ein Beispiel für die Funktionsweise der 
unteren App-Leiste in der 
Flutter- Demo-Anwendung. Rechts sehen Sie eine Demonstration der 
unteren App- Leisten- Bibliothek von 
KivyMD .
Codebeispiel from kivy.factory import Factory from kivymd.app import MDApp from kivy.lang import Builder Builder.load_string( """ <BottomAppBar@Screen> BoxLayout: spacing: dp(10) orientation: 'vertical' MDToolbar: title: "Title" md_bg_color: app.theme_cls.primary_color left_action_items: [['menu', lambda x: x]] Widget: MDBottomAppBar MDToolbar: title: "Title" icon: "git" type: "bottom" left_action_items: [["menu", lambda x: x]] """ ) class BottomAppBarTest(MDApp): def build(self): return Factory.BottomAppBar() BottomAppBarTest().run() 
 Hintergrund
Material Design HintergrundLinks sehen Sie ein Beispiel für die Funktionsweise von 
Backdropr in der 
Flutter- Demo-Anwendung. Rechts sehen Sie eine Demonstration des 
Backdropr der 
KivyMD- Bibliothek.
Wir haben der Bibliothek auch den Abschnitt " 
Studien" hinzugefügt, in dem Demoanwendungen wie " 
Schrein" , " 
Basilikum" und andere bereitgestellt werden. Im Moment können Sie sehen, wie die 
Shrine- Anwendung aussieht:
Und hier ist das Gleiche, aber aus der 
Flutter- Anwendung:
So sieht 
KivyMD auf 
Android- Geräten aus. An einigen Stellen gibt es natürlich Leistungsprobleme, aber dies betrifft höchstwahrscheinlich 
Kivy selbst. Zum Beispiel gibt es immer noch Probleme beim Starten von "schweren" Bibliotheken. Im folgenden Video habe ich eine Beispielanwendung mit 
OpenCV als Backend für eine 
Android- Kamera gegeben:
In diesem speziellen Fall kann nichts getan werden, da zu Beginn nicht nur 
OpenCV und 
NumPy geladen werden, sondern auch native Aufrufe, um all dies zu verbinden. Eine gut gestaltete mobile Anwendung auf 
Kivy und 
KivyMD startet jedoch ziemlich schnell. All dies gilt für mobile Plattformen. Es gibt keine derartigen Probleme auf dem Desktop und 
KivyMD sieht dort einfach 
großartig aus:
Mac OS:
Windows:
Grundsätzlich spielt es keine Rolle, auf welchem Betriebssystem dies alles funktioniert, da 
KivyMD wie 
Kivy überall gleich aussieht. Sie müssen selbst entscheiden, welche Art von Bewerbung Ihre Bewerbung haben wird, und ich denke, das ist nur ein Plus.
Wir haben viel vor, aber nicht genug Hände. Obwohl es keine Zeit gibt, den Dateimanager für Desktop-Systeme zu verfeinern, möchte ich Unterstützung für iOS-Widgets und vieles mehr einführen ... Trotz aller Mängel nimmt die Anzahl der Downloads und das Interesse an der Bibliothek von Tag zu Tag zu:
Treten Sie der Community bei, wenn Sie Python genauso lieben, wie wir es lieben!
Youtube-KanalKivyMD NachrichtenZwietracht-Chat