Python GUI mit KIVY – Erste Schritte mit Fenstern!

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.

Unsicher mit Git?
Lade jetzt dein Git CheatSheet herunter!

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 😉

Wie kannst du am schnellsten Summen... x
Wie kannst du am schnellsten Summen bilden? Python Built-Ins | #Shorts

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht.

Scroll to Top
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
Trag dich schnell ein und bekomme Zugang zum Download!
Gib mir den Download!