PyGTK ist ein Python-Modul, mit dem du eine grafische Benutzeroberfläche (GUI) für eine Anwendung erstellen kannst. Hier erfährst du alles, was du über dieses Tool und seinen Nachfolger PyGObject wissen musst: Funktionsweise, Vor- und Nachteile, Schulungen...
PyGTK ist ein Python-Modul, mit dem du eine grafische Benutzeroberfläche (GUI) für eine Anwendung erstellen kannst. Hier erfährst du alles, was du über dieses Tool und seinen Nachfolger PyGObject wissen musst: Funktionsweise, Vor- und Nachteile, Schulungen…
💡Auch interessant:
Folium: Die Python Open-Source Bibliothek |
E-Mail mit Python senden |
Python HTTP Requests |
API Programmierung mit Flask |
Python Test Nose |
NLTK Python |
Was ist PyGTK ?
PyGTK wurde von James Henstridge entwickelt und ist ein Modul, mit dem du grafische Benutzeroberflächen in Python erstellen kannst, damit die Benutzer schnell mit einer Anwendung interagieren können.
Sein Name ist eine Kombination aus der Programmiersprache Python und GTK: GIMP ToolKit. Tatsächlich handelt es sich dabei um eine Sammlung von Python-Wrappern für die Bibliothek für grafische Benutzeroberflächen GTK+.
Sie vereint zahlreiche grafische Elemente und andere Programmierwerkzeuge für den Aufbau von Anwendungen. PyGTK ist sehr intuitiv und eignet sich ideal für die schnelle Erstellung von Prototypen.
Diese Open-Source-Software unter der LGPL-Lizenz ist auch eine Cross-Platform-Bibliothek. Sie kann auf Unix und Win32 installiert werden. Es ist eine Erweiterung des GNOME-Projekts.
Wozu dient PyGTK ?
PyGTK wird hauptsächlich für die Erstellung von grafischen Benutzeroberflächen (GUI) in Python verwendet. Eine GUI besteht aus einem Fenster und einer Sammlung von Widgets, einschließlich Dialogboxen, Kontrollkästchen, Schaltflächen, Text und anderen Elementen.
Die GUI sendet ein Signal an das Programm, sobald der Benutzer mit diesem Fenster oder einem seiner Widgets interagiert. Dies gilt selbst dann, wenn der Benutzer nur mit dem Mauszeiger darüber fährt. Das Ziel ist es, das Programm darüber zu informieren, dass eine Reaktion erforderlich sein könnte.
Vor- und Nachteile von PyGTK
Eine der größten Stärken von PyGTK ist ein hohes Leistungsniveau, insbesondere bei den Versionen 0.X für GTK 1.2. Die Version 2.0 für GTK 2.X ist immer noch sehr gut.
Dieses Tool bietet auch eine effiziente API, die auf Signal- und Callback-Fortpflanzung basiert. Jede Komponente kann ein Signal senden, das nach oben weitergeleitet wird, bis es erfasst und ein Callback-Aufruf generiert wird.
Mit einem Werkzeug zur Schnittstellenerstellung namens Glade kann eine XML-Referenz für die Schnittstelle erzeugt werden, die die Bibliothek direkt verwenden kann.
Darüber hinaus bietet PyGTK ein hohes Maß an Portierbarkeit von Anwendungen nach Windows. Diese Portierung kann in der Regel ohne Änderungen am Code durchgeführt werden.
Schließlich ist die Dokumentation dieses Tools sehr umfassend. Es gibt ausgezeichnete Tutorials für beide Versionen, wobei die Referenz für 2.X besonders umfangreich ist.
Der größte Schwachpunkt von PyGTK ist jedoch der Umfang des Codes. Auch wenn ein Großteil davon überflüssig erscheint, ist er unverzichtbar.
Um ein beliebiges Element zu verwenden, muss man es bauen, dann aufrufen, mit seinen Methoden konfigurieren, es positionieren und dann mit der Methode show () zeigen. Für jedes Objekt gibt es mindestens drei Aufrufmethoden. Daher ist der Quellcode sehr umfangreich.
Die Module von PyGTK
Es gibt verschiedene Module für PyGTK. Pango ist eine Bibliothek für Textlayout und Zeichnungen mit Fokus auf Internationalisierung.
Cairo ist eine Bibliothek für 2D-Grafiken, die verschiedene Gerätetypen unterstützen kann. Die ATK-Bibliothek bietet Zugänglichkeitstools wie Benutzeroberflächen, Lupen oder alternative Eingabegeräte.
Das GTK-Modul ist für die Benutzeroberfläche zuständig, während Glade verwendet wird, um grafische Oberflächen aus XML-Dateien zu erstellen. GObject schließlich ist die Fundamentklasse für die PyGTK-Klassen und stellt die gemeinsamen Funktionen und Attribute bereit.
Die Klassen von PyGTK
Sehen wir uns nun die verschiedenen Klassen von PyGTK an. Die Klasse gtk.Widget bietet einen standardisierten Satz von Methoden und Signalen für Widgets.
Die Klasse gtk.Window ist ein Fenster, das eine Titelleiste und Schaltflächen zum Ändern der Größe, Schließen oder Verschieben des Fensters enthält.
Der gtk.Dialog wird verwendet, um ein Popup-Fenster mit Informationen und Optionen zu erstellen, die der Benutzer auswählen kann. Der gtk.Button ist ein Button-Widget, das ein Signal sendet, wenn es angeklickt wird. Er wird normalerweise als Druckknopf mit einer Textbeschriftung angezeigt und verwendet, um eine Callback-Funktion anzuhängen.
gtk.Label zeigt den Text schreibgeschützt an. Mit gtk.Layout ist es möglich, einen scrollbaren Bereich mit untergeordneten Widgets und eigenen Grafiken zu erstellen, die unbegrenzt scrollen können.
Die gtk.Toolbar ist ein Container, der eine horizontale oder vertikale Leiste mit Schaltflächen und Widgets speichert und aufrechterhält. Das Widget gtk.ComboBox wird verwendet, um Elemente aus einer Liste auszuwählen.
Um eine horizontale oder vertikale Bildlaufleiste hinzuzufügen, wird gtk.Scrollbar verwendet. Mit der Klasse gtk.ProgressBar kann der Fortschritt eines längeren Prozesses angezeigt werden. Schließlich gruppiert gtk.Menu Objekte von Menüeinträgen, auf die der Benutzer zugreifen kann und die bei Aktivierung Anwendungsfunktionen ausführen.
Welche Anwendungen nutzen PyGTK?
Viele Anwendungen nutzen PyGTK. Als bekannte Beispiele seien hier der Anaconda-Installer, BitTorrent, SoundConverter oder das Ubuntu Software Center genannt.
Andere Beispiele sind Deluge, Emesene, Flumotion, Exaile, gDesklets, Gajim, GIMP und Gedit, Gramps GNOME Sudoku, Jokosher, der Mikroblogging-Client Gwibbler, PyMusique, puddletag, Tryton, ROX Desktop, Pybliographer, die IDE Wing, Comix oder der Ubuntu Ubiquity Installer.
💡Auch interessant:
Python Deep Learning |
Die populärsten Data Frameworks |
Python pyTest |
Top 10 Python Bibliotheken |
Seaborn Datenvisualisierung |
Python Annotations |
Was ist PyGObject ?
Mit der Veröffentlichung von GTK Version 3 wird PyGTK durch PyGObject ersetzt, das die GObject-Introspektion nutzt, um Bindings für Python und andere Sprachen sehr schnell zu erzeugen. Dadurch wird die Verzögerung zwischen GTK-Aktualisierungen und Bindings in verschiedenen Sprachen beseitigt.
Dieses Tool stellt einen Wrapper zur Verfügung, der in Python-Programmen beim Zugriff auf GObject-Bibliotheken verwendet werden kann: ein Objektsystem, das insbesondere von GTK, GLib, GIO und GStreamer verwendet wird.
Jede Bibliothek, die die GObject-Introspektion verwendet, ist für PyGObject dynamisch zugänglich. Dies ersetzt die Notwendigkeit von separaten Modulen wie PyGTK, GIO und python-gnome, um eine vollständige GNOME 3.0-Anwendung zu erstellen.
Sobald eine neue Funktion zur GObject-Bibliothek hinzugefügt wird, steht sie sofort als Python-API zur Verfügung, ohne dass ein Zwischenhändler benötigt wird.
Der PyGObject-Wrapper und die GObject-Bibliothek stehen unter der GNU LGPL-Lizenz. Sie sind daher für die Verwendung in freier und proprietärer Software geeignet. Sie werden bereits in vielen Anwendungen eingesetzt, sowohl für kleine Skripte für den einmaligen Gebrauch als auch für große Anwendungen.
Als Beispiele seien Ex Falso, Gramps, Meld, Pitivi, PyChess und Quod Libet genannt. Auch wenn PyGObject PyGTK bereits ersetzt hat, dauert die Portierung bei vielen Programmen noch eine Weile.
Fazit: PyGTK, ein sehr nützliches Python-Modul für die Erstellung von GUIs
Mit dem Python-Modul PyGTK lassen sich auf einfache Weise fortgeschrittene grafische Benutzeroberflächen für Anwendungen erstellen. Es ist ein Open-Source- und Cross-Platform-Tool mit großer Flexibilität, das nun durch PyGObject ersetzt wurde.
Um zu lernen, wie man mit PyGTK, PyGObject und Python umgeht, kannst du DataScientest wählen. Unsere Kurse für Data Science beinhalten alle ein Modul, das sich mit diesen Programmiersprachen befasst.
Diese verschiedenen Kurse ermöglichen es dir, alle Fähigkeiten zu erwerben, die du als Data Analyst, Data Engineer, Data Scientist, Machine Learning Engineer oder Data Product Manager benötigst.
Alle unsere Programme werden vollständig im Fernunterricht über das Internet absolviert, und unsere Organisation ist für den Bildungsgutschein zur Finanzierung zugelassen. Warte nicht länger und entdecke DataScientest!