Heinrich Schiller  24.09.2021 16:16

Gtk Software unter Windows mit Python, PyGObject und Glade schreiben

Hin und wieder finde ich im Netz für mich interessante Dinge, wo ich dann Lust habe mich damit zu beschäftigen. Ich bin über ein Python GTK+3 Tutorial gestoßen wo ich jetzt nach und nach abarbeite. GTK+ ist ein Widget Toolkit für grafische Oberflächen und wird überwiegend von dem Gnome-Projekt genutzt und entwickelt. Gnome selbst ein Desktop das vornämlich für Linux zu Verfügung steht, aber auch für die BSD-Familie ist dieser Desktop portiert worden. GTK allein wird darüber hinaus auch noch von weiteren Projekten wie Gimp, XFCE, Mate und vielen weiteren Projekten eingesetzt.

Für mich ist das ganze nun interessant, weil ich neben Windows auch Linux mit Gnome verwende und schon länger Entwicklungswerkzeuge suche, um unter Linux und Gnome auch Software zu schreiben. Um das Tutorial nun durch zu arbeiten, habe ich entweder meinen Linux-Desktop gebootet oder eine VBox-Umgebung mit Linux und Gnome gestartet und dann dort geschrieben. Ziemlich umständlich also. Bis vor kurzem dachte ich auch noch, diese Tools würden wohl nur unter Linux laufen. Heute bin ich etwas schlauer :-)

Es ist mir wichtig das meine Programme möglichst unter verschiedenen Betriebssystemen laufen können. Vielleicht sitze ich mal vor einem Linux-System und habe keinen zugriff auf Windows. Warum auch immer. Ich möchte in der Lage sein dann mein Tool zu übersetzen und auch auf Linux nutzen, oder Macos, oder Windows. Also habe ich nach Möglichkeit gesucht GTK mit Python auch unter Windows zu nutzen.

PyGObject

Zunächst bin ich auf PyGObject gestoßen. Das ist ein Modul für Python, das Windows, Linux und Macos unterstützt. Mit PyGObject kann das oben genannte Tutorial eben durchgearbeitet werden. PyGObject wird unter Linux einfach als Abhängigkeit installiert oder je nach Linux-Distribution (wie Fedora) gleich dabei. Ich kann mich nicht erinnern etwas extra installiert zu haben. Unter Getting Started wird beschrieben wie man PyGObject unter Windows installiert, darum muss ich das hier nicht machen. Hier habe ich von einem weiteren interessanten Projekt erfahren.

MSYS2

MSYS2 ist eine Softwareverteilungs- und Erstellungsplattform für Windows. Es basiert auf Cygwin, das es erlaubt Open Source und Linux Software unter Windows zu nutzen. Was es besser als Cygwin kann, kann ich jetzt nicht sagen da ich hier nicht recherchiert habe. Die Installationsanleitung für PyGObject, empfiehlt eben MSYS2. Das Project beherbergt um die 2000 Pakete, die man hier einsehen kann. MSYS2 legt im Start-Menü mehrere Terminals an. Eines dient für MSYS2 selbst, MSYS2 MSYS. Hiermit wird die Software installiert und aktualisiert. Um die Programme anschließen nutzen zu können, muss man MSYS MinGW 64Bit nutzen. Das ist eine speziell für MSYS2 eingerichtete Benutzerumgebung. Man landet im Ordner C:\\msys64\\home\\benutzer wo man die installierte Programme nutzen kann. Sonst von nirgendwo aus :(

Hat man MSYS2 installiert, geht man zurück auf die PyGObject Seite wo die Windows-Installation erklärt wird und macht eben die Installation. Ob alles funktioniert hat, kann man sehen wenn man in MSYS MinGW 64Bit gtk3-demo eingibt und ausführt. Wenn das GTK-Demo-Fenster aufgeht, hat alles geklappt und man kann nun anfangen das Python GTK+3 Tutorial anfangen abzuarbeiten. Übrigens wenn man die GTK3-Demo startet, wird ein Gnome3-Fenster angezeigt, da in Gnome die Programme mit Titelleiste gleich mitkommen.

Glade

Das hier war lediglich ein Experiment. Glade ist ein GTK+ Designer für Gnome, mit dem man GTK-Fenster grafisch erstellen kann. Mit MSYS2 steht Glade auch unter Windows zu verfügung, was man nachträglich installieren kann und über MSYS2 MinGW 64Bit mit glade ausführen kann. Es startet tatsächlich und sieht auch unter Windows wie eine Gnome3-Anwendung aus. Also für Windows total untypisch. Ich habe noch nicht alles ausprobiert, aber das jetzige Ergebniss sieht vielversprechend aus. Es geht sogar soweit das wenn alles ordentlich funktioniert, ich gar nicht mehr die VBox-Umgebung für dieses Szenario gar nicht starten muss und auch unter Windows einfach los legen kann. Anschließend kann ich den fertigen Code auch unter Linux abrufen und ausführen.

Zu meiner Überraschung ist also mit GTK und Python auch unter Windows einiges möglich. MSYS2 scheint neben Cygwin auch ein interessantes Projekt zu sein, wenn man Linux-Software unter Windows nutzen möchte. Ich muss nicht mein System wechseln und kann meine (Linux) Tools einfach unter Windows schreiben. Sollte ich die meine Tools dann unter Linux haben wollen, kann ich das dann auch machen. Ich finde das super!