GTK- GTK
Originalautor(en) | Spencer Kimball , Peter Mattis |
---|---|
Entwickler | Das GNOME-Projekt , eXperimental Computing Facility (XCF) |
Erstveröffentlichung | 14. April 1998 |
Stabile Version | 4.4.0 / 23. August 2021
|
Vorschauversion | 4.3.1 / 9. Juni 2021
|
Repository | |
Geschrieben in | C , CSS |
Betriebssystem | Linux , Unix-ähnlich , macOS , Windows |
Typ | Widget-Toolkit |
Lizenz | LGPLv2.1+ |
Webseite | gtk |
GTK (ehemals GIMP ToolKit, dann GTK+ ) ist ein kostenloses und quelloffenes plattformübergreifendes Widget-Toolkit zum Erstellen von grafischen Benutzeroberflächen (GUIs). Es ist unter den Bedingungen der GNU Lesser General Public License lizenziert , die es sowohl freier als auch proprietärer Software erlaubt, es zu verwenden. Es ist eines der beliebtesten Toolkits für die Fenstersysteme Wayland und X11 .
Das GTK-Team veröffentlicht regelmäßig neue Versionen. GTK 4 und GTK 3 werden beibehalten, während GTK 2 ausgedient hat.
Softwarearchitektur
Die GTK- Bibliothek enthält eine Reihe von grafischen Bedienelementen ( Widgets ); Version 3.22.16 enthält 186 aktive und 36 veraltete Widgets. GTK ist ein objektorientiertes Widget-Toolkit, das in der Programmiersprache C geschrieben ist ; es verwendet GObject , also das GLib- Objektsystem, für die Objektorientierung. Während GTK hauptsächlich für Windowing-Systeme auf Basis von X11 und Wayland gedacht ist , funktioniert es auf anderen Plattformen, darunter Microsoft Windows (mit der Windows-API verbunden ) und macOS (mit Quartz verbunden ). Es gibt auch ein HTML5- Back-End namens Broadway .
GTK kann so konfiguriert werden, dass das Aussehen der gezeichneten Widgets geändert wird; Dies geschieht mit verschiedenen Display-Engines. Es gibt mehrere Anzeige-Engines, die versuchen, das Aussehen der nativen Widgets auf der verwendeten Plattform zu emulieren.
Beginnend mit der 2005 veröffentlichten Version 2.8 begann GTK mit dem Übergang zur Verwendung von Cairo zum Rendern der meisten seiner grafischen Steuerelement- Widgets . Seit GTK-Version 3.0 erfolgt das gesamte Rendering mit Kairo.
Am 26. Januar 2018 gab Matthias Clasen auf DevConf.cz einen Überblick über den aktuellen Stand der GTK 4-Entwicklung, einschließlich einer Erläuterung auf hoher Ebene, wie Rendering und Eingabe in GTK 3 funktionierten, welche Änderungen in GTK 4 vorgenommen werden (>3.90 ), und warum. Am 6. Februar 2019 wurde bekannt gegeben, dass GTK 4 das „+“ aus dem Projektnamen streichen wird.
GTK-Zeichensatz (GDK)
GDK fungiert als Wrapper um die Low-Level-Funktionen, die von den zugrunde liegenden Fenster- und Grafiksystemen bereitgestellt werden.
GDK befindet sich im /gdk
Verzeichnis.
GTK-Szenengrafik-Kit (GSK)
GSK ist die Rendering- und Szenengraph-API für GTK. GSK liegt zwischen den grafischen Bedienelementen (Widgets) und dem Rendering. GSK wurde schließlich in GTK-Version 3.90, die im März 2017 veröffentlicht wurde, zusammengeführt.
GSK wird im /gsk
Verzeichnis gefunden.
GtkInspektor
GtkInspector wurde mit Version 3.14 eingeführt. GtkInspector kann nur aufgerufen werden, nachdem das Entwicklungspaket libgtk-3-dev / gtk+-devel installiert wurde .
GUI-Designer
Es gibt mehrere GUI-Designer für GTK. Folgende Projekte sind seit Juli 2011 aktiv:
- Glade unterstützt GtkBuilder , ein in GTK integriertes GUI-Beschreibungsformat.
- Gazpacho , GUI-Builder für das in Python geschriebene GTK-Toolkit
- Crow Designer basiert auf seinem eigenen GuiXml-Format und der GuiLoader-Bibliothek.
- Stetic , Teil von MonoDevelop , orientiert sich an Gtk# .
- Gambas seit Version 2.0 auf BASIC
- Xojo unter Linux
- Lazarus unter Linux verwendet standardmäßig eine Schnittstelle zu GTK 2
GtkBuilder
Mit GtkBuilder können Benutzeroberflächen entworfen werden, ohne Code zu schreiben. Die Schnittstelle wird in einer Extensible Markup Language (XML)-Datei beschrieben, die dann zur Laufzeit geladen und die Objekte automatisch erstellt werden. Die Glade Interface Designer ermöglicht die Erstellung der Benutzeroberfläche in ein , was Sie sehen, was Sie erhalten ( WYSIWYG ) Art und Weise. Die Beschreibung der Benutzeroberfläche ist unabhängig von der verwendeten Programmiersprache.
Sprachbindungen
Sprachbindungen sind für die Verwendung von GTK aus anderen Sprachen als C verfügbar, einschließlich C++ , Genie , JavaScript , Perl , Python , Vala und anderen .
GtkSharp, nicht zu verwechseln mit Gtk#, unterstützt GTK 3.
GTK#
Entwickler | Xamarin |
---|---|
Erstveröffentlichung | 12. März 2004 |
Stabile Version | 2.12.41 / 22. September 2016
|
Vorschauversion | 2.99.3 (für GTK3) / 6. Juni 2014
|
Repository | |
Geschrieben in | C# , XML , Perl , C |
Betriebssystem | Windows , macOS , Linux |
Typ | Widget-Toolkit |
Lizenz | GNU Lesser General Public License |
Webseite | mono-project |
Gtk# ist ein Satz von .NET Framework- Bindungen für das GTK- Toolkit der grafischen Benutzeroberfläche (GUI) und verschiedene GNOME- Bibliotheken . Die Bibliothek erleichtert das Erstellen grafischer GNOME-Anwendungen mit Mono oder einer anderen kompatiblen Common Language Runtime (CLR). Gtk# ist ein ereignisgesteuertes System wie jede andere moderne Fensterbibliothek, bei der jedes Widget die Zuordnung von Handlermethoden ermöglicht, die aufgerufen werden, wenn bestimmte Ereignisse auftreten.
Anwendungen, die mit Gtk# erstellt wurden, laufen auf vielen Plattformen, einschließlich Linux , Windows und macOS . Die Mono-Pakete für Windows enthalten GTK, Gtk# und ein natives Design, um Anwendungen wie native Windows-Anwendungen aussehen zu lassen. Ab Mono 1.9 erfordert das Ausführen von Gtk#-Anwendungen unter macOS keinen X11- Server mehr.
Glade Interface Designer kann mit den Glade#-Bindungen verwendet werden, um auf einfache Weise GUI-Anwendungen zu entwerfen. Ein GUI-Designer namens Stetic ist in die integrierte Entwicklungsumgebung (IDE) von MonoDevelop integriert .
Neben der Unterstützung des standardmäßigen GTK/GNOME-Stack von Entwicklungstools bietet die Assembly gtk-dotnet.dll eine Brücke zur Nutzung der auf dem .NET-Stack verfügbaren Funktionen. An dieser Stelle umfasst dies die Funktionalität, mit System.Drawing auf einem Widget zu zeichnen.
Ab September 2020 befindet sich die Gtk#-Unterstützung für Gtk3 noch in der Vorschauphase und gegabelte Projekte wie GtkSharp wurden gegründet, um die vollständige Gtk3-Unterstützung für C# und andere CLI-Sprachen bereitzustellen. Das Fehlen einer freigegebenen Version von Gtk# mit Unterstützung für Gtk3 wurde als Grund dafür angeführt, den Banshee Media Player in Ubuntu 12.04 zu entfernen .
Entwicklung
GTK wird hauptsächlich von The GNOME Project entwickelt , das auch die GNOME Development Platform und die GNOME Desktop Environment entwickelt.
Die GTK-Entwicklung wird lose verwaltet. Diskussionen finden hauptsächlich auf mehreren öffentlichen Mailinglisten statt. GNOME-Entwickler und -Benutzer treffen sich auf einer jährlichen GUADEC -Konferenz der europäischen GNOME-Benutzer- und -Entwicklerkonferenz , um den aktuellen Stand und die zukünftige Ausrichtung von GNOME zu diskutieren. GNOME integriert Standards und Programme von freedesktop.org, um eine bessere Zusammenarbeit mit anderen Desktops zu ermöglichen.
GTK ist hauptsächlich in C geschrieben . Viele Sprachbindungen sind verfügbar .
Am 1. September 2016 beschrieb ein Beitrag im GTK-Entwicklungsblog unter anderem das zukünftige Nummernschema von GTK. GTK Version 3.22 vom Herbst 2016 soll das letzte 3.x Release sein. Version 3.24 wurde im Herbst 2018 mit Verzögerung von GTK 4 eingeführt. Danach werden alle Ressourcen in die GTK 4-Entwicklungsserie mit den Versionsnamen 3.90, 3.92 usw. verschoben. Auch wenn die 4.x-Serie in die Entwicklung einsteigt, werden noch bemerkenswerte Anwendungen verwendet GTK 2.x und wurden nicht auf 3.22 portiert. In Bezug auf die Zukunft von Legacy- Software, die GTK verwendet , gab es kein gemeinsames Projekt, um GTK 2.x-Software auf 3.22 zu portieren. Version 3.24 ist im Langzeitsupport und die aktuelle und zukünftige Basis von Programmen wie gimp 3.0 und Inkscape 1.0. Für Entwickler besteht also die Wahl stabiles GTK 3.24 mit Bugfix oder GTK 4 mit Änderungen und neuen Features in der zukünftigen Entwicklung.
Build-Automatisierung
GTK (und GNOME, GLib usw.) verwendeten früher das GNU Build System (genannt Autotools) als das bevorzugte Build-Automatisierungssystem .
Seit dem 14. August 2017 wird der Master-Zweig von GTK mit Meson erstellt und die Autotools-Build-Systemdateien fallen weg.
Kritik
Der häufigste Kritikpunkt an GTK ist die fehlende Abwärtskompatibilität bei großen Updates, insbesondere bei der Anwendungsprogrammierschnittstelle (API) und dem Thema.
Die Kompatibilitätspausen zwischen kleineren Releases während des GTK 3.x-Entwicklungszyklus wurden von Benjamin Otte mit starkem Innovationsdruck erklärt, wie etwa der Bereitstellung der Funktionen, die moderne Benutzer erwarten, und der Unterstützung des immer einflussreicheren Wayland-Display-Server-Protokolls . Mit der Veröffentlichung von GTK 4 wird der Innovationsdruck gelockert und die Balance zwischen Stabilität und Innovation kippt in Richtung Stabilität. Ebenso sollen die jüngsten Änderungen am Thema speziell diesen Teil der API verbessern und stabilisieren, was bedeutet, dass sich einige Investitionen jetzt lohnen sollten.
- Dirk Hohndel, Code-Entwickler von Subsurface und Mitglied von Intels Open-Source Technology Center, kritisierte die GTK-Entwickler dafür, dass sie aggressiv seien und die meisten Community-Anfragen ignorierten.
- Hong Jen Yee, Entwickler von LXDE (deren GTK-Version eingestellt wurde und alle Bemühungen auf den Qt-Port konzentrierten ), äußerte seine Verachtung für Version 3 der radikalen API-Änderungen des GTK-Toolkits und die erhöhte Speichernutzung und portierte PCMan File Manager (PCManFM). zu Qt . PCManFM wird gleichzeitig mit einem GTK und einem Qt-Backend entwickelt.
- Der Audacious- Musikplayer wurde in Version 3.6 auf Qt umgestellt. Als Gründe dafür nennen die Entwickler einen Übergang zu clientseitigen Fensterdekorationen, die die Anwendung " GNOME -y und fehl am Platz" aussehen lassen .
- Wireshark ist auf Qt umgestiegen, da wir keine guten Erfahrungen mit der plattformübergreifenden Unterstützung von GTK gemacht haben.
Verwenden
Anwendungen
Einige bemerkenswerte Anwendungen, die GTK als Widget-Toolkit verwenden oder einmal verwendet haben, umfassen:
- GNOME-Kernanwendungen – als Teil der GNOME- Desktop-Umgebung, entwickelt in Zusammenarbeit mit GTK selbst.
- AbiWord – Textverarbeitung (3.0+ mit GTK+ 3)
- Anjuta – Integrierte Entwicklungsumgebung (IDE) (GTK+ 3)
- Ardour – Digitale Audio-Workstation
- Chromium – Webbrowser (bis Version 34, ab Version 35 durch Aura ersetzt)
- Ekiga (ehemals Gnomemeeting) - VoIP und Videokonferenzen Anwendung
- GNU Emacs kann GTK verwenden, wenn es auf X läuft. (GTK+ 3 mit 24.2+)
- Evolution – Personal Information Manager (GTK+ 3 mit 3.x, GTK 4 mit Version 40.0)
- gconfig – Dienstprogramm zur Konfiguration der Linux-Kernel- Quelle.
- Geany – ein leichter plattformübergreifender IDE- und GTK-Texteditor basierend auf Scintilla . (Version 1.37.1 basierend auf GTK+ 3.24.23, zuletzt mit Unterstützung von GTK+ 2.20+)
- GIMP – Rastergrafikeditor (3.0 mit GTK+ 3, 2.99.4 Vorschau von 3.0)
- Gnumeric – Tabellenkalkulationsanwendung (1.12.x mit GTK+ 3)
- Gramps – Genealogie-Software (4.0+ mit GTK+ 3)
- Inkscape – Vektorgrafik-Editor für SVG (1.0.x mit GTK+ 3)
- LiVES – Video-Editor (GTK+ 2.16+ oder 3)
- Midori – Minimalistischer Webbrowser mit GTKWebKit als Rendering-Engine und GTK als Widget-Toolkit (GTK+ 3)
- Pidgin – Instant Messenger- Anwendung
Desktop-Umgebungen
Mehrere Desktop-Umgebungen verwenden GTK als Widget-Toolkit.
Strom
- GNOME , basierend auf GTK, was bedeutet, dass Programme, die in GNOME nativ sind, GTK verwenden
- Budgie , von Grund auf neu für den SolusOS-Nachfolger, das Solus-Betriebssystem
- Cinnamon , eine Abzweigung von GNOME 3, die GTK-Version 3 verwendet
- MATE , ein Fork von GNOME 2, das GTK 3 seit Version 1.18 verwendet
- Xfce , basierend auf GTK 3 seit Version 4.14
- Pantheon verwendet ausschließlich GTK 3, das von elementary OS entwickelt wird
- Sugar , eine Desktop-Umgebung für die Grundschulbildung von Jugendlichen , die GTK verwendet, insbesondere PyGTK
- KDE basiert zwar auf Qt , hat aber seit Version 4.2 eine Integration mit GTK-geschriebenen Programmen und Themes
- Phosh , eine mobile Benutzeroberfläche für PureOS
Inaktiv
- Unity , die frühere Standard-Desktop-Umgebung von Ubuntu
- LXDE (Lightweight X11 Desktop Environment) basiert auf GTK 2
- Access Linux Platform (Nachfolger der Palm OS PDA- Plattform)
- Consort, der Fallback-Modus von GNOME 3.4 – Fork von SolusOS
- GPE , die GPE Palmtop-Umgebung
- ROX Desktop , ein leichter Desktop mit Funktionen aus der GUI von RISC OS
Sonstig
GTK-Programme können auf Desktop-Umgebungen, die auf X11 und Wayland basieren, oder auf Fenstermanagern, sogar auf solchen, die nicht mit GTK erstellt wurden, ausgeführt werden, vorausgesetzt, die erforderlichen Bibliotheken sind installiert; dies schließt macOS ein, wenn X11.app installiert ist. GTK kann auch unter Microsoft Windows ausgeführt werden , wo es von einigen beliebten plattformübergreifenden Anwendungen wie Pidgin und GIMP verwendet wird. wxWidgets , ein plattformübergreifendes GUI-Toolkit, verwendet standardmäßig GTK unter Linux. Andere Ports umfassen DirectFB (wird zum Beispiel vom Debian-Installer verwendet ) und ncurses .
Fenstermanager
Die folgenden Fenstermanager verwenden GTK:
GtkSourceView
Für Syntax-Highlighting gibt es GtkSourceView , "Quellcode-Bearbeitungs-Widget". GtkSourceView wird von GNOME getrennt von GTK als Bibliothek verwaltet: gtksourceview . Eine Umbenennung in gsv ist geplant.
GtkSpell
GtkSpell ist eine von GTK getrennte Bibliothek. GtkSpell hängt von GTK und Enchant ab . Enchant ist ein Wrapper für ispell, hunspell usw., die eigentliche Rechtschreibprüfungs- Engine/Software. GtkSpell verwendet das GtkTextView-Widget von GTK, um falsch geschriebene Wörter hervorzuheben und Ersatz anzubieten.
Beispiel
Die Dokumentation ist hier verfügbar:
Der folgende Code stellt ein grafisches GTK- Hello-World- Programm in der Programmiersprache C dar . Dieses Programm hat ein Fenster mit dem Titel "Hello, world!" und ein Etikett mit ähnlichem Text.
// helloworld.c
#include <gtk/gtk.h>
/* Callback that will be called when the application is activated */
static void
activate_callback(GApplication *app, gpointer user_data)
{
GtkWidget *window;
GtkWidget *label;
/* Create the main, top level window */
window = gtk_window_new();
/* Give it the title */
gtk_window_set_title(GTK_WINDOW(window), "Hello, world!");
/* Set the window's default size */
gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);
/* Assign the variable "label" to a new GTK label,
* with the text "Hello, world!" */
label = gtk_label_new("Hello, world!");
/* Plot the label onto the main window */
gtk_window_set_child(GTK_WINDOW(window), label);
/* Make the application aware of the window.
* The application process will continue to run until all
* windows are closed */
gtk_application_add_window(GTK_APPLICATION(app), GTK_WINDOW(window));
/* Make sure that everything, window and label, are visible */
gtk_widget_show(window);
}
int main (int argc, char *argv[])
{
/* Create our test application */
GtkApplication *application = gtk_application_new("org.wikipedia.gtktest", 0);
/* Connect our handler to the "activate" callback, which will be called
* when the application is activated by the user, e.g. on first start */
g_signal_connect(application, "activate", G_CALLBACK(activate_callback), NULL);
/* Run the application and return its status */
return g_application_run(G_APPLICATION(application), argc, argv);
}
Muss zuerst die Bibliotheken in Debian oder Derivaten installieren :
$ sudo apt-get install libgtk-4-dev
Mit pkg-config in einer Unix-Shell kann dieser Code mit dem folgenden Befehl kompiliert werden:
$ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld
Rufen Sie das Programm auf:
$ ./helloworld
Geschichte
Linux
GTK wurde ursprünglich im GNU Image Manipulation Program (GIMP) als Ersatz für das Motif- Toolkit entwickelt und verwendet; Irgendwann war Peter Mattis von Motif desillusioniert und begann, sein eigenes GUI-Toolkit namens GIMP-Toolkit zu schreiben und hatte Motif erfolgreich durch die 0.60-Version von GIMP ersetzt. Schließlich wurde GTK objektorientiert umgeschrieben und in GTK+ umbenannt. Dies wurde erstmals in der Version 0.99 von GIMP verwendet. GTK wurde anschließend von der GNOME Foundation zur Wartung übernommen , die es in der GNOME-Desktop-Umgebung verwendet.
Die GTK 2.0.0-Release-Serie führte neue Funktionen ein, darunter verbessertes Text-Rendering mit Pango , eine neue Theme- Engine, verbesserte Zugänglichkeit mit dem Accessibility Toolkit , Übergang zu Unicode mit UTF-8- Strings und eine flexiblere API. Ab Version 2.8 hängt GTK 2 für das Rendern von Vektorgrafiken von der Cairo -Grafikbibliothek ab.
GTK-Version 3.0.0 enthielt eine überarbeitete Handhabung von Eingabegeräten, Unterstützung für Themen, die mit CSS- ähnlicher Syntax geschrieben wurden, und die Möglichkeit, Informationen über andere geöffnete GTK-Anwendungen zu empfangen.
Das '+' wurde im Februar 2019 während eines Hackathons fallen gelassen und kehrte zu einfach 'GTK' zurück .
Mac OS
Mit Quartz- Backend ist GTK in macOS verfügbar .
Fenster
- Nach GTK 2.24.10 und 3.6.4 wurde die Entwicklung von Windows mit Installer von Gnome eingestellt. Die Installation von MSYS2 unter Windows ist eine gute Möglichkeit, das aktuelle GTK zu verwenden.
- GTK 2.24.10 und 3.6.4 sind im Internet verfügbar, aber sehr fehlerhaft und gegenüber aktuellen Versionen eingeschränkt.
- Eine Version für Windows 64-Bit ist von Tom Schoonjans mit 2.24.33 (aktuell wie Linux) und 3.24.24 (aktuell wie Linux) ab Januar 2021 verfügbar.
- Das Fall Creators Update von Windows 10 enthält das Windows-Subsystem für Linux (WSL). Mit Linux-Distributionen wie Ubuntu oder Debian, die im Windows Store erhältlich sind, und einem X-Server wie Xming oder VcXsvr können Tausende von Programmen wie GTK 2 oder 3 mit X- oder Terminal-Unterstützung ausgeführt werden.
OpenVMS
HP erklärte, sein Ziel sei es, die erforderlichen OpenVMS- Änderungen in den GTK Version 1.3-Entwicklungsstrom einzufügen, dies kam jedoch nie zustande. Die neueste Version von GTK für OpenVMS ist Version 1.2.10.
GTK 4
Eine der wichtigsten Neuerungen, die während des GTK 4-Entwicklungszyklus (dh GTK 3.92 usw.) implementiert wurden, war die Delegation von Funktionalität an Hilfsobjekte, anstatt sie in die von GTK bereitgestellten Basisklassen zu kodieren.
- das von GtkWidget beschriebene Event-Handling von Signalhandlern wird an Event-Controller delegiert
- das Rendering wird an GtkSnapshot-Objekte delegiert
- der Layout-Mechanismus von GtkWidget wird an GtkLayoutManager delegiert
Am 26. Januar 2018 gab Matthias Clasen auf DevConf.cz einen Überblick über den damaligen aktuellen Stand der GTK 4-Entwicklung, einschließlich einer Erklärung auf hoher Ebene, wie Rendering und Eingabe in GTK 3 funktionierten, welche Änderungen an GTK 4 vorgenommen wurden, und die Gründe für diese Änderungen. Beispiele für Dinge, die mit GTK 4 möglich geworden sind, wurden ebenfalls genannt.
Veröffentlichungen
Legende:
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Neueste Vorschauversion
Zukünftige Veröffentlichung
|
|||||||
Release-Serie | Erstveröffentlichung | Wichtige Verbesserungen | Neueste Nebenversion | ||||
---|---|---|---|---|---|---|---|
1.0 | 1998-04-13 | Erste stabile Version | 1.0.6 | ||||
1,2 | 1999-02-25 | Neue Widgets :
|
1.2.10 | ||||
2.0 | 2002-03-11 |
GObject
Allgemeine Unterstützung für UTF-8 |
2.0.9 | ||||
2.2 | 2002-12-22 | Multihead-Unterstützung | 2.2.4 | ||||
2.4 | 2004-03-16 | Neue Widgets:
|
2.4.14 | ||||
2.6 | 2004-12-16 | Neue Widgets:
Der letzte, der Windows 98 / Me unterstützt |
2.6.10 | ||||
2,8 | 2005-08-13 | Die meisten Widgets werden von Kairo gerendert | 2.8.20 | ||||
2.10 | 2006-07-03 | Neue Widgets:
Druckunterstützung: GtkPrintOperation |
2.10.14 | ||||
2.12 | 2007-09-14 | GtkBuilder | 2.12.12 | ||||
2.14 | 2008-09-04 | Unterstützung beim Laden von JPEG 2000 | 2.14.7 | ||||
2.16 | 2009-03-13 | Neues Widget: GtkOrientable
Caps Lock-Warnung bei Passworteingabe Verbesserungen an GtkScale, GtkStatusIcon, GtkFileChooser |
2.16.6 | ||||
2.18 | 2009-09-23 | Neues Widget: GtkInfoBar
Verbesserung der Dateiauswahl, Drucken Um einen Großteil des notwendigen IPC zwischen der X11-Anwendung und dem X11-Server zu entfernen, wird GDK (hauptsächlich von Alexander Larsson) umgeschrieben, um "client-side windows" zu verwenden, dh das GdkWindow, das jedes Widget haben muss, gehört jetzt dem Client |
2.18.9 | ||||
2.20 | 2010-03-23 | Neue Widgets:
Verbesserung der Dateiauswahl, Tastaturbedienung, GDK Introspektion-Daten sind jetzt in GTK enthalten |
2.20.1 | ||||
2.22 | 2010-09-23 |
GdkPixbuf wurde in ein separates Modul verschoben
Die meisten GDK-Zeichnungen basieren auf Kairo Viele interne Daten sind jetzt privat und können in Vorbereitung auf GTK 3 versiegelt werden |
2.22.1 | ||||
2.24 | 2011-01-30 | Neues Widget: GtkComboBoxText
Das CUPS-Druck-Backend kann Druckaufträge als PDF versenden GtkBuilder hat Unterstützung für Text-Tags und Menü-Toolbuttons erhalten und viele Korrekturen für Introspektion-Annotationen wurden hinzugefügt |
2.24.32 (2018-01-08) |
||||
3.0 | 2011-02-10 | Die Entwicklung und das Design der GTK 3-Version des Toolkits begannen im Februar 2009 während des GTK Theming Hackfests in Dublin
Abgeschlossen hauptsächlich Project Ridley
Das gesamte Rendering erfolgt mit Kairo GDK wurde X11-agnostischer XInput2, Thema API basiert auf Cascading Style Sheets (CSS), Verschlechterung der erreichbaren Leistung bei 60 Hz Bildraten |
3.0.12 | ||||
3.2 | 2011-09-25 | Neue Widgets:
Dialogfeld „Neue Schriftartenauswahl“ Neue experimentelle Back-Ends: |
3.2.4 | ||||
3.4 | 2012-03-26 | Menüunterstützung in GtkApplication
Ein neuer Farbwähler Unterstützung für Touch-Geräte hinzugefügt Unterstützung für flüssiges Scrollen hinzugefügt GtkScrolledWindow führt kinetisches Scrollen mit Touch-Geräten durch macOS-Unterstützung wurde verbessert Dies ist die erste Version von GTK 3, die unter Windows gut funktioniert Das Wayland-Backend wird auf die aktuelle Wayland-Version aktualisiert Spin-Buttons haben ein neues Aussehen bekommen Barrierefreiheit: Die Unterstützung für barrierefreie Baumansichten wurde neu geschrieben Vollständigere Unterstützung für CSS-Themen |
3.4.4 | ||||
3.6 | 2012-09-24 | Neue Widgets:
Vertikale Drehknöpfe CSS-Animationen, Schatten verwischen Unterstützung für Überblendungen und Übergänge in Designs |
3.6.5 | ||||
3.8 | 2013-03-25 | Wayland 1.0 stabile Unterstützung
Unterstützung für den Broadwayd-Server Verbessertes Design Besseres Geometriemanagement Touch-Verbesserungen Unterstützung mit dem Window-Manager für das Frame-Synchronisations-Protokoll GdkFrameClock hinzugefügt |
3.8.9 | ||||
3.10 | 2013-09-23 | Neue Widgets:
Unterstützung für Wayland 1.2
Hinzugefügt:
ENTFERNT:
Abreißbare Menüpunkte sowie viele GTK-Einstellungen |
3.10.9 | ||||
3.12 | 2014-03-25 | Kundenseitige Dekorationen
Unterstützung für Wayland 1.5 Neues Widget: GtkPopover (eine Alternative zu Menüs und Dialogen) |
3.12.2 | ||||
3.14 | 2014-09-22 |
GtkInspector (eine Kopie von gtkparasite) eingeführt
Verbesserte Unterstützung für Gesten / Multi-Touch zusammengeführt Veraltet:
Die meisten Widgets wurden so konvertiert, dass sie intern Gesten verwenden Wayland unterstützt den klassischen GNOME-Shell-Modus |
3.14.15 | ||||
3.16 | 2015-03-22 | GDK unterstützt das Rendern von Fenstern mit OpenGL für X11 und Wayland mit libepoxy
Neue Widgets:
Scrollen überarbeitet ( Scrollbar standardmäßig ausgeblendet) Experimentelles Mir- Backend |
3.16.7 | ||||
3.18 | 2015-09-23 | CSS-Knoteninfrastruktur hinzufügen
Mehr Dateiauswahl-Design-Aktualisierung und bessere Dateiauswahl-Suche Unterstützung für Windows XP eingestellt Modellunterstützung für List- und Flow-Box Kinetisches Scrollen des Touchpads Touchpad-Gesten (Wayland) gtk-builder-tool-Dienstprogramm Nur Ausgabefenster |
3.18.9 | ||||
3.20 | 2016-03-21 | Weitere Integration von CSS-Knoten
Verschieben per Drag & Drop nach unten zu GDK Neues Widget: GtkShortcutsWindow (zeigt Tastenkombinationen und Gesten einer Anwendung an) |
3.20.10 | ||||
3.22 | 2016-09-21 | Letzte 3.x-Version
Die Unterstützung für Wayland-Tablets wird zusammengeführt, die Unterstützung für Grafiktabletts gilt als abgeschlossen GTK 3.22 soll genauso felsenfest (und damit "langweilig") sein wie GTK 2 |
ab 3 Jahren 3.22.29 |
||||
3.24 | 2018-09-03 | 3.22 sollte die letzte Version der GTK 3-Serie sein
Abhängigkeitserschütterungen – erfordern:
Neue Funktionen zur Schriftartenauswahl:
Neue Emoji-Funktionen:
Andere neue APIs: gdk_window_move_to_rect Wayland: Verwenden Sie anonymen Shared Memory auf FreeBSD Zurückportierte Event-Controller von GTK 4:
Stellen Sie einige APIs ein, die in GTK 4 verschwunden sind:
|
3.23.0 3.23.1 3.23.2 3.23.3 3.24.0 … 3.24.5 3.24.14 … |
||||
3.90 | 2017-03-31 |
GTK Scene Graph Kit (GSK) zusammengeführt
Entfernen Sie alle APIs, die als veraltet markiert sind Schwere Entwicklung
Ein neuer Vulkan- Renderer ergänzt den alten Kairo- Renderer |
3.89.1 |
||||
3.92 | 2017-10-18 | Da GNOME 3.26 bereits am 13. September 2017 veröffentlicht wurde, basierte es nicht auf GTK 3.92.
GNU Autotools wurde durch Meson ersetzt . |
3.91.0 |
||||
3.94 | 2018-06-26 | 3.93
GdkWindow umbenannt in GdkSurface Neue Abstraktion für zeichnerische Inhalte: GdkPaintable Es gibt Unterstützung für die Anzeige von Medien mit:
|
3,93 3,94.0 |
||||
3,96 | 2019-05-07 | Der Befehl gtk4-builder-tool simplify hat eine --3to4Option zum Konvertieren von GTK3-UI-Dateien in GTK4 erhalten; mit AMTK werden jedoch Menüs, Symbolleisten oder andere Objekte wie GtkShortcutsWindow programmatisch erstellt (nicht mit einer *.ui-Datei), sondern mit praktischen APIs.
GtkWidget kann jetzt einen GtkLayoutManager für die Größenzuweisung verwenden
Die Fokusbehandlung wurde neu geschrieben und die Generierung von Fokusänderungsereignissen wurde mit Crossing-Ereignissen vereinheitlicht Ereignisse wurden vereinfacht und dienen nur der Eingabe:
|
3.96.0 | ||||
3.98 | 2020-02-10 |
|
3.98.5 | ||||
3.99.0 | 2020-07-31 |
|
3.99.4 | ||||
4.0 | 2020-12-16 | 4.0.2 | |||||
4.2 | 2021-03-30 | ||||||
4.4 | 2021-08-23 |
Siehe auch
- Clientseitige Dekoration
- Liste der Widget-Toolkits
- GDK – das GIMP Drawing Kit liegt zwischen der xlib und der GTK-Bibliothek und verarbeitet grundlegendes Rendering wie Zeichnungsprimitive, Rastergrafiken (Bitmaps), Cursor, Schriftarten sowie Fensterereignisse und Drag-and-Drop-Funktionalität
- gtkmm – C++-Bindungen für GTK
- Qt – plattformübergreifendes Framework und Toolkit
- Xojo – plattformübergreifendes Entwicklungstool und Framework
- Enlightenment Foundation Libraries (EFL) – Widget-Toolkit für den Enlightenment Window Manager
- FLTK – ein leichtes, plattformübergreifendes, nicht-natives Widget-Toolkit
- FOX-Toolkit – ein schnelles Open-Source-, plattformübergreifendes Widget-Toolkit
- IUP – ein Multi-Plattform-Toolkit zum Erstellen nativer grafischer Benutzeroberflächen
- Ultimativ++
- Visuelle Komponentenbibliothek (VCL)
- Vala – eine objektorientierte Programmiersprache mit einem selbsthostenden Compiler, der C-Code generiert und das GObject-System verwendet.
- wxWidgets - ein plattformübergreifendes GUI-Toolkit, dessen Ziel es ist, nach Möglichkeit die native grafische API jeder Plattform direkt zu verwenden.
Verweise
Literaturverzeichnis
- Krause, Andrew (23. April 2007), Foundations of GTK+ Development (1. Aufl.), Apress , ISBN 978-1-59059-793-4
- Wright, Peter (15. Mai 2000), Beginn von GTK+ und GNOME (1. Aufl.), Peer Information , ISBN 978-1-86100-381-2
- Logan, Sydney (6. September 2001), Gtk+ Programming in C (1. Aufl.), Prentice Hall , ISBN 978-0-13-014264-1
Externe Links