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

* Mac OS BeispielUnten 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