Gooey: Fast jedes Python-Kommandozeilenprogramm in eine vollwertige GUI-Anwendung verwandeln
(github.com/chriskiehl)Python-Konsolenprogramme mit Gooey in GUI-Anwendungen verwandeln
- Gooey ist ein Tool, das Python-3-Konsolenprogramme in benutzerfreundliche GUI-Anwendungen umwandelt.
- Anstelle einer Eingabeaufforderung bietet es eine GUI und macht Programme dadurch einfacher nutzbar und ansprechender.
- Besonders nützlich ist es, wenn man Skripte für Nicht-Programmierer oder Utilities für Aufgaben wie Datenübertragung erstellen möchte.
Funktionsweise von Gooey
- Gooey wird in den Code eingebunden, indem einem Methode mit einer
argparse-Deklaration ein Decorator hinzugefügt wird. - Zur Laufzeit parst es das Python-Skript, extrahiert
ArgumentParser-Referenzen und setzt daraus die GUI zusammen. - Mit
GooeyParserlässt sich feiner steuern, welche Widgets in der GUI angezeigt werden.
Internationalisierung von Gooey
- Gooey lässt sich leicht in verschiedene Sprachen übersetzen; aktuell sind bereits mehr als 18 Übersetzungen enthalten.
- Unterstützung für eine neue Sprache ist so einfach wie das Hinzufügen von Schlüssel/Wert-Paaren im Verzeichnis
gooey/languages/.
Globale Einstellungen von Gooey
- Das allgemeine Erscheinungsbild von Gooey lässt sich anpassen, indem Argumente an den Decorator übergeben werden.
- Verschiedene Konfigurationselemente wie Encoding, Sprache, Startgröße und Schriftarten lassen sich individuell festlegen.
Layout-Anpassung in Gooey
- Gooey bietet mit einigen einfachen Anpassungen ein flexibles Layout.
- Es stehen verschiedene Layout-Optionen zur Verfügung, etwa die Anzeige einer Sidebar oder die Verwendung von Tab-Gruppen.
Anzeigemodi von Gooey
- Gooey bietet mehrere Anzeigemodi, mit denen sich das Layout an die Art des Inhalts und das Erfahrungsniveau der Nutzer anpassen lässt.
- Mit den Modi Erweitert, Einfach und Ohne Konfiguration lassen sich GUIs für unterschiedliche Anforderungen bereitstellen.
Menüs in Gooey
- Benutzerdefinierte Menügruppen und Einträge können zur Menüleiste von Gooey hinzugefügt werden.
- Es werden verschiedene Arten von Menüoptionen unterstützt, darunter Programminformationen, Meldungsdialoge und Links.
Dynamische Validierung in Gooey
- Bevor Benutzereingaben an das Programm übergeben werden, kann Gooey optional eine Vorabvalidierung ausführen, um sicherzustellen, dass alle Argumente die Prüfung bestehen.
Lifecycle-Events und UI-Steuerung in Gooey
- Gooey bietet Lifecycle-Hooks, mit denen zusätzliche Folgeschritte bei erfolgreicher Ausführung oder Fehlern möglich sind und sich der aktuelle Zustand der UI steuern lässt.
Fortschrittsanzeige in Gooey
- Gooey kann den Status eines Fortschrittsbalkens anhand textbasierter Fortschritts-Updates aktualisieren.
- Über reguläre Ausdrücke und benutzerdefinierte Auswertungs-Ausdrücke kann der Fortschritt an Gooey übermittelt werden.
Anpassung von Icons in Gooey
- Gooey ermöglicht es, Standard-Icons durch benutzerdefinierte Bilder oder Icons zu ersetzen.
- Über das Argument
image_dirkann ein benutzerdefiniertes Bildverzeichnis angegeben werden.
Packaging von Gooey
- Das Packaging von Gooey als ausführbare Datei ist sehr einfach; mit pyinstaller lässt sich die Anwendung zu einer fertigen ausführbaren Datei bündeln.
Meinung von GN⁺
Der wichtigste Punkt dieses Artikels ist, dass Gooey Python-Konsolenprogramme sehr einfach in GUI-Anwendungen umwandeln kann. Dadurch werden Programme für Nutzer ohne Programmierkenntnisse vertrauter und leichter zugänglich, sodass sich Entwickler auf die Logik konzentrieren können, ohne sich intensiv um die Benutzeroberfläche kümmern zu müssen. Die vielfältigen Einstellungen und Anpassungsoptionen machen Gooey zu einer attraktiven Wahl für Entwickler und können die Einstiegshürde in die GUI-Entwicklung deutlich senken.
1 Kommentare
Hacker-News-Kommentare
Erläuterung des Entwicklers zum Gooey-Projekt
argparseeine solide Wahl.argparseentkoppelt.argparsebleibt weiterhin die Hauptschnittstelle, aber es gibt keine wirklich überzeugende Alternative.Diskussion über die Beziehung zwischen Gooey und
argparseargparseeignet sich für einfache Aufgaben, aber es gibt viele aufClickbasierende CLIs, und auch populäre CLI-Bibliotheken bauen aufClickauf.Clickkompatibel ist; wenn es aufargparsebeschränkt ist, ist die Formulierung „fast alle“ möglicherweise nicht ganz zutreffend.Verweise auf frühere Diskussionen zu Gooey
Wunsch, dass Betriebssysteme und Shells Programme besser ausführen können
Vorstellung des Textual-Frameworks
Textual-Framework, mit dem sich in Python über eine einfache API Benutzeroberflächen erstellen lassen, die im Terminal und im Webbrowser laufen.Anfrage nach einer GUI-Version für ffmpeg
Frage zur Integration von CLI-Werkzeugen, die Benutzereingaben erwarten, mit Gooey
Interesse an einem Werkzeug zur Umwandlung von GUI in CLI
Erwähnung des Naked-Objects-Konzepts
Neugier, ob Gooey Web-Apps erzeugen könnte