Nach sechsmonatiger Entwicklung wurde die Veröffentlichung des plattformübergreifenden Toolkits zur Erstellung von Benutzeroberflächen – GTK 4.10.0 – bekannt gegeben. GTK 4 wird im Rahmen eines neuen Entwicklungsprozesses vorangetrieben, der darauf abzielt, Entwicklern eine stabile und über mehrere Jahre unterstützte API bereitzustellen, die ohne Sorge genutzt werden kann, dass alle sechs Monate Anwendungen aufgrund einer Änderung der API in einem neuen GTK-Zweig überarbeitet werden müssen.
Unter den bemerkenswertesten Verbesserungen in GTK 4.10:
- Im GtkFileChooserWidget, das einen Dialog zur Auswahl von Dateien in Anwendungen implementiert, wurde ein Modus zur Anzeige des Verzeichnisinhalts in Form eines Rasterlayouts hinzugefügt. Standardmäßig bleibt die klassische Listenansicht der Dateien aktiv, und um in den Symbolmodus zu wechseln, gibt es auf der rechten Seite der Leiste eine separate Schaltfläche. der Symbole:

- Neue Klassen wie GtkColorDialog, GtkFontDialog, GtkFileDialog und GtkAlertDialog wurden hinzugefügt, um Dialoge zur Auswahl von Farben, Schriften und Dateien sowie zur Anzeige von Warnhinweisen zu implementieren. Die neuen Varianten zeichnen sich durch den Übergang zu einer ganzheitlicheren und ausgewogeneren API aus, die im asynchronen Modus (GIO async) arbeitet. In den neuen Dialogen wurden, wo möglich und verfügbar, Freedesktop-Portale (xdg-desktop-portal) eingesetzt, die Zugriff auf Ressourcen der Benutzerumgebung aus isolierten Anwendungen ermöglichen.
- Ein neuer Backend CPDB (Common Printing Dialog Backend) wurde hinzugefügt, der standardisierte Handler für die Verwendung in Druckdialogen bereitstellt. Die Unterstützung des zuvor verwendeten Druckbackend lpr wurde eingestellt.
- In der GDK-Bibliothek, die eine Schnittstelle zwischen GTK und dem Grafiksystem bereitstellt, wurde die Struktur GdkTextureDownloader eingeführt, die zum Laden von Texturen in der GdkTexture-Klasse verwendet wird und zur Umwandlung verschiedener Formate eingesetzt werden kann. Das Skalieren von Texturen unter Verwendung von OpenGL wurde verbessert.
- In der GSK-Bibliothek (GTK Scene Kit), die Rendering-Funktionen für grafische Szenen über OpenGL und Vulkan bietet, wurde die Unterstützung von Knoten mit Masken und anpassbarer Filterung von skalierbaren Texturen implementiert.
- Es wurde die Unterstützung neuer Versionen von Wayland-Protokollerweiterungen umgesetzt. Der Ausgabe von Startbenachrichtigungen bei der Verwendung des Protokolls „xdg-activation“ wurde etabliert. Probleme mit der Cursorgröße auf Bildschirmen mit hoher Pixeldichte wurden behoben.
- Die Klasse GtkMountOperation wurde für die Arbeit in Umgebungen ohne X11 angepasst.
- Das Backend Broadway, das die Ausgabe der GTK-Bibliothek in einem Webbrowserfenster rendert, unterstützt jetzt modale Fenster.
- In der Klasse GtkFileLauncher wurde eine neue asynchrone API als Ersatz für gtk_show_uri vorgeschlagen.
- In dem Werkzeug gtk-builder-tool wurde die Verarbeitung von Vorlagen verbessert.
- Im Widget GtkSearchEntry wurde die Unterstützung für Platzhaltertext hinzugefügt, der angezeigt wird, wenn das Feld leer ist und kein Eingabefokus vorhanden ist.
- Die Klasse GtkUriLauncher wurde hinzugefügt, die die Funktion gtk_show_uri ersetzt, um zu bestimmen, welches Programm zum Anzeigen des angegebenen URI gestartet werden soll, oder um einen Fehler auszugeben, wenn kein Handler vorhanden ist.
- In der Klasse GtkStringSorter wurde die Unterstützung verschiedener „Kolations“-Methoden hinzugefügt, die es ermöglichen, das Vergleichen und Sortieren unter Berücksichtigung der Bedeutung von Zeichen durchzuführen (z. B. bei Vorhandensein von Akzenten).
- Eine große Anzahl von APIs und Widgets wurde als veraltet erklärt, die in der zukünftigen GTK5-Version nicht mehr unterstützt werden sollen und die durch analoge Lösungen ersetzt werden, die im asynchronen Modus arbeiten:
- GtkDialog (verwenden Sie GtkWindow).
- GtkTreeView (verwenden Sie GtkListView und GtkColumnView).
- GtkIconView (verwenden Sie GtkGridView).
- GtkComboBox (verwenden Sie GtkDropDown).
- GtkAppChooser (verwenden Sie GtkDropDown).
- GtkMessageDialog (verwenden Sie GtkAlertDialog).
- GtkColorChooser (verwenden Sie GtkColorDialog und GtkColorDialogButton).
- GtkFontChooser (verwenden Sie GtkFontDialog und GtkFontDialogButton).
- GtkFileChooser (verwenden Sie GtkFileDialog).
- GtkInfoBar
- GtkEntryCompletion
- GtkStyleContext
- GtkVolumeButton
- GtkStatusbar
- GtkAssistant
- GtkLockButton
- gtk_widget_show/hide
- gtk_show_uri
- gtk_render_ und gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- Der Schnittstelle GtkAccessible wurde der öffentliche Zugriff gewährt, wodurch die Möglichkeit geschaffen wird, Drittanbieter-Handler für Benutzeroberflächenelemente für Menschen mit Behinderungen anzuschließen. Die Schnittstelle GtkAccessibleRange wurde hinzugefügt.
- Auf der macOS-Plattform wurde die Unterstützung für Drag-and-Drop (DND) von Elemente gewährleistet.
- Auf der Windows-Plattform wurde die Integration mit den Systemeinstellungen verbessert.
- Das Format der Debug-Ausgabe wurde vereinheitlicht.
- Das Speicherlimit für den JPEG-Bildlader wurde auf 1 GB angehoben.
Quelle: opennet.ru

