Gnome-Toolkit für GUI: GTK 4.0 erscheint nach 4 Jahren und ist grunderneuert

Datentransfer, Ereigniskontrolle, Layout-Verwaltung, Nodes zum Rendern, Accessibility und mehr: Die neue Hauptversion hat grundlegende Aktualisierungen an Bord.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 5 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

GTK, ein freier Werkzeugsatz für grafische Nutzeroberflächen (GUI), ist nach vier Jahren der Weiterentwicklung in der vierten Hauptversion erschienen. Das letzte Major Release fand im November 2016 statt, seither hat die GTK-Community rund 18000 Commits ergänzt und etwa 20 experimentelle Releases für Entwickler herausgegeben.

Die Neuerungen betreffen eigentlich alle Kernaspekte des Toolkits: Die Entwickler haben an Datenübertragung, Event-Steuerung, dem Verwalten von Layouts, den Nodes zum Rendern, dem Media Playback, skalierbaren Listen und Shadern getüftelt. Auch die Accessibility, also Elemente zum zunehmend barrierefreien Verwenden der Programmbibliothek, soll im Fokus gestanden haben.

Die einzelnen Neuerungen haben schrittweise Einzug gehalten in das große Release, hier ein kurzer Jahresrückblick: Den Auftakt machte ein überarbeiteter Datentransfer für GTK 4 im Januar 2020. Ende April folgten neue Event-Handler für komplexe Events und deren Verarbeitung. Etwa zeitgleich hatten die GTK-Entwickler das Widget-Prinzip ausgeweitet und die Verwendung neuer Labels dafür als Ersatz manuellen Ladens und manuellen Layout-Renderns empfohlen, auch das Widget zum Zeichnen gilt seither als stärker an das GTK-Drawing-Modell angebunden.

Die neue Hauptversion der GUI-Programmbibliothek GTK 4.0 bietet skalierbare Listen und Grids.

(Bild: GTK.org)

Im Mai setzten die GTK-Entwickler ihre Veröffentlichungsreihe fort und stellten eine bessere Einbettung bewegter Bilder und Animationen vor (Media in GTK 4). Im Juni folgte die Infrastruktur für skalierbare Listen und Grid-Widgets, Ende September wurden die Shader-Tools vertieft und im letzten Minor Release Ende Oktober erblickte das erste nicht-triviale Backend zur Implementierung erweiterter Accessibility das Licht. Anlässlich dieser Erweiterung nahmen die Entwickler die Barrierefreiheit insgesamt im GTK-Toolkit unter die Lupe.

Inmitten der zahlreichen wichtigen Neuerungen sei eine hier stärker beleuchtet: Der Datentransfer ist nun auf die Wayland API ausgerichtet und modernisiert. Die wie gewohnt vom Nutzer angestoßene Drag-and-drop-Übertragung zwischen Desktop-App und Clipboard gilt seither als vollständig implementiert. Die APIs benötigen nun keine inkrementellen Transfers mehr und müssen übertragene Daten nicht länger ins String-Format konvertieren: Die Drag-and-drop-API in GTK 4.x haben die Entwickler neu organisiert. Entwickler erstellen jetzt einen GtkDragSource-Event-Controller, der auf Drag-Gesten reagiert, und können dann einen GdkContentProvider für die Transferdaten bereitstellen. Um in der Ziel-App Drag-and-drop-Operationen zu empfangen, erstellt man einen Event-Controller für ein GtKDropTarget und ruft wie folgt eine async-read-Methode auf:

gdk_drop_read_value_async()
gdk_drop_read_text_async()

Der Toolkit samt Programmbibliothek ist eine in der Programmiersprache C geschriebene quelloffene Sammlung von Widgets und steht im Zentrum der Entwicklungsplattform GNOME. GTK kann aber auch zum Schreiben von Anwendungen in anderen Linux-Umgebungen zum Einsatz kommen und lässt sich ebenfalls verwenden zum Erstellen von Apps für Microsoft Windows und Apples macOS (hier: über das Quartz-Backend, eine Portierung des X Window System). Es stellt eine Alternative dar zu anderen GUI-Toolkits wie Qt, Motif und Tk.

GTK enthält zahlreiche Steuerelemente, mit denen Entwickler grafische Benutzeroberflächen (GUI) für Software erstellen können. Obwohl das zugrunde liegende GTK-Toolkit in C geschrieben ist, sind alle Widgets als Objekte realisiert. Dieser Ansatz ermöglicht es, die Vorteile der Objektorientierung mit der Integrationsfähigkeit von C-Bibliotheken in andere Sprachen zu verbinden. So existieren Module, die weiteren Programmiersprachen den Zugriff auf die Gnome-Umgebung ermöglichen.

Wie bei vielen Open-Source-Projekten war bislang die Dokumentation ein entscheidender Schwachpunkt. Einige Informationen musste man sich bisher aus der Dokumentation zum GTK, den Mailinglisten und den mitgelieferten Beispielen zusammensuchen. Für GTK 4 soll ein Migrations-Leitfaden folgen, der Teil der überarbeiteten Dokumentation ist (aktuell führen die Links der Blogankündigung noch ins Leere). Hier ist offenbar noch etwas Geduld gefragt und ein späteres Prüfen der Blogmeldung.

Mehr Informationen stehen in der Blogankündigung, die auf eine Artikelstrecke zu den einzelnen Features verlinkt. Insbesondere finden sich hier einige kurze Demo-Videos. Erhältlich ist GTK 4.0 in den GNOME-Quellen, Binärpakete sollen in Kürze in den Haupt-Distributionen folgen. So haben die GTK-Entwickler angekündigt, dass sie eine Reihe von Anwendungen aus GNOME 40 zu GTK 4.0 portieren werden. GTK 4.0 lässt sich in den Nightly Flatpak Builds auch als Demo testen.

Last but not least feiert die GTK-Community am Freitag, 18. Dezember 2020 um 20:30 Uhr (MEZ) online eine Release-Party, zu der Interessierte sich noch anmelden können.

(sih)