fbpx

Python GUI mit KIVY – Erste Schritte mit Fenstern!

Inhalt
    Add a header to begin generating the table of contents

    Python kommt im Standard mit Tkinter für grafische Oberflächen.
    Manchmal etwas umständlich, bekommen wir damit doch praktische Fensteranwendungen dargestellt.
    Kivy hebt dein GUI auf das nächste Level!

    Deutlich einfacher und grafisch ansprechender kannst du hier deine Oberflächen erstellen.
    Kivy ist nicht nur auf dem Desktop Plattform übergreifend.
    Ohne große Umstände lässt es sich auch auf Android oder iOS ausliefern.

    In dieser kleinen Reihe möchte ich eine erste App mit Kivy mit dir bauen.

    Kivy Serie

    Ziel des Artikels

    Am Ende des Artikels hast du alle Vorbereitungen getroffen.
    Die Umgebung ist installiert und der erste Code ist geschrieben.

    Du hast dann eine erstellte Anwendung, die du starten kannst.
    Damit siehst du dein erstes Fenster und hast die Basis für die weiteren Schritte.

    So sollte dein Fenster am Ende dieses Artikels aussehen:

    Kivy App - erstes Fenster
    Kivy App – erstes Fenster

    Vorbereitung und Installation

    Wie bei jedem Projekt kommt zuerst die virtuelle Umgebung.

    Kivy hat hier keine besonderen Ansprüche. Du kannst also einfach wie gewohnt eine virtuelle Umgebung mit pipenv oder virtualenv erzeugen.

    Falls du wie ich auf dem neuen Apple M1 Prozessor unterwegs bist, empfehle ich dir eine Anaconda Umgebung!

    Da ich mich für Anaconda entschieden habe, werde ich dir hier diesen Weg zeigen. Solltest du einen anderen bevorzugen, findest du hier für so ziemlich jede Variante Unterstützung in der Installation.

    Zuerst musst du – wie gesagt – eine virtuelle Umgebung erzeugen.
    Ist Anaconda bereits installiert, genügt dafür der Befehl:

    conda create -n kivy_venv python=3.9

    Nachdem die Umgebung erfolgreich erstellt wurde, kannst du sie aktivieren und mit der Installation beginnen:

    conda activate kivy_venv
    conda install kivy -c conda-forge

    Nachdem die Installation abgeschlossen ist, bist du bereit für den Start.
    Öffne also ein neues Projekt in deiner bevorzugten IDE und los geht’s!

    Eine neue App definieren

    Zuallererst muss die App natürlich erzeugt werden.
    Erst dann kannst du Inhalte einfügen.

    Eine Kivy App zu erzeugen ist ganz einfach.
    Dafür musst du lediglich aus kivy.app die Klasse App importieren und eine eigene Klasse davon ableiten:

    from kivy.app import App
    
    class MyApp(App):
        pass

    Alles was dabei vor “App” steht – also in meinem Fall “My” – wird als Titel für das Fenster genutzt.
    Heißt deine Klasse also “KivyApp” wird der Fenster-Titel “Kivy” sein.

    Als Nächstes muss die build Funktion überschrieben werden.
    Die Kivy Klasse App hat bereits eine Funktion build, um die App initial aufzubauen.

    Mit der Funktion kann das initiale Fenster “gestaltet” werden.

    from kivy.uix.gridlayout import GridLayout
    
    def build(self):
        self.window = GridLayout()
        
        return self.window

    Kivy stellt mehrere Layouts bereit.
    So gibt es zum Beispiel FloatLayout, BoxLayout, GridLayout und einige mehr.
    Eine genaue Übersicht findest du hier.

    Hier nutzt du jetzt einfach erstmal ein Grid.
    Ein Grid ist immer schön für eine einfache Anordnung in Zeilen und Spalten.

    Eine Kivy App kommt auch immer schon mit einer Variablen window.
    Dadurch werden die Eigenschaften des Fensters definiert, das Kivy erzeugen soll.

    Hier kann sowohl das Layout erzeugt werden, als auch Größen oder Komponenten definiert werden.
    Für den Moment reicht es uns erstmal einfach ein GridLayout zu hinterlegen.

    Am Ende der build Funktion müssen wir das fertig konfigurierte Fenster dann wieder rausgeben → return self.window

    Damit ist Kivy dann in der Lage, das fertig konfigurierte Fenster zu erzeugen und darzustellen.
    Das war’s auch schon.
    Mehr ist nicht nötig, um ein Fenster zu erzeugen.

    Der erste Start der App

    Als Letztes musst du deine Klasse nur noch aufrufen.
    Dazu erzeugst du einfach eine Instanz und rufst die Funktion run() auf.

    if __name__ == '__main__':
        app = MyApp()
        app.run()

    Natürlich rufst du die App nicht einfach so auf!
    Auf keinen Fall solltest du das if __name__ == ‘__main__’ vergessen.
    Du weißt nicht, wofür du das verwenden solltest?
    Hier findest du eine Erklärung.

    Darunter dann einfach eine neue Instanz erzeugen und in der Variablen app ablegen → app = MyApp()
    Anschließend kannst du an der Instanz direkt die Funktion run() aufrufen → app.run()

    Im Hintergrund kümmert sich Kivy jetzt um alles.
    Es wird eine Schleife erzeugt, die das Fenster mit den Angaben zeichnet und sich darum, kümmert alles offenzuhalten bis du das Fenster wieder schließt.

    Fertig ist dein erstes Fenster!
    Herzlichen Glückwunsch! 🙂

    Im nächsten Artikel werden wir das Fenster mit den ersten Komponenten füllen.
    Bleib also auf jeden Fall dran 😉

    Kurse

    Code Challenges und YouTube Videos führen nicht immer zum gewünschten Erfolg.
    Manchmal ist es besser, gezielt und strukturiert durch ein Thema zu arbeiten.

    Schau dich einfach mal bei meinen Kursen um.
    Ohne lästiges Blah Blah steigen wir direkt in das Thema ein und behandeln alles, was du brauchst.

    Picture of Ingo Janßen

    Ingo Janßen

    Lerne nicht einfach programmieren. Löse Probleme und automatisiere Aufgaben!

    Das könnte dich auch interessieren

    Nach oben scrollen
    Newsletter Popup Form

    Keine Inhalte mehr verpassen?

    Melde dich direkt für den "Code-Kompass" an und erhalte nützliche Tipps und Informationen direkt in deinen Posteingang.