GTK
Oryginalni autorzy | Spencera Kimballa , Petera Mattisa |
---|---|
Deweloperzy | Projekt GNOME , eXperimental Computing Facility (XCF) |
Pierwsze wydanie | 14 kwietnia 1998 |
Wersja stabilna | 4.8.3 / 22 grudnia 2022 r
|
Wersja podglądu | 4.9.2 / 26 grudnia 2022 r
|
Magazyn | |
Napisane w | C , CSS |
System operacyjny | Linux , uniksopodobny , macOS , Windows |
Typ | Zestaw narzędzi widżetów |
Licencja | LGPLv2.1+ |
Strona internetowa |
GTK (wcześniej GTK+ ) to darmowy wieloplatformowy zestaw narzędzi typu open source do tworzenia graficznych interfejsów użytkownika (GUI). Jest licencjonowany zgodnie z warunkami Mniejszej Powszechnej Licencji Publicznej GNU , co pozwala na korzystanie z niego zarówno darmowemu , jak i prawnie zastrzeżonemu oprogramowaniu . Jest to jeden z najpopularniejszych zestawów narzędzi do systemów okienkowych Wayland i X11 .
Zespół GTK regularnie wydaje nowe wersje. GTK 4 i GTK 3 są utrzymywane, podczas gdy GTK 2 jest wycofany z eksploatacji . GTK1 jest niezależnie utrzymywany przez projekt CinePaint .
Architektura oprogramowania
Biblioteka GTK zawiera zestaw graficznych elementów sterujących ( widżetów ); wersja 3.22.16 zawiera 186 aktywnych i 36 przestarzałych widżetów. GTK to zorientowany obiektowo zestaw narzędzi widżetów napisany w języku programowania C ; używa GObject , czyli systemu obiektowego GLib , do orientacji obiektowej. Podczas gdy GTK jest przeznaczony głównie dla systemów okienkowych opartych na X11 i Wayland , działa na innych platformach, w tym Microsoft Windows (połączony z Windows API ) i macOS (powiązany z Quartz ). Istnieje również zaplecze HTML5 o nazwie Broadway .
GTK można skonfigurować tak, aby zmieniał wygląd rysowanych widżetów; odbywa się to przy użyciu różnych silników wyświetlania. Istnieje kilka silników wyświetlania, które próbują naśladować wygląd natywnych widżetów na używanej platformie.
Począwszy od wersji 2.8, wydanej w 2005 roku, GTK zaczęło używać Cairo do renderowania większości widżetów graficznych elementów sterujących . Od wersji GTK 3.0 całe renderowanie odbywa się przy użyciu Cairo.
26 stycznia 2018 r. na DevConf.cz Matthias Clasen przedstawił przegląd obecnego stanu rozwoju GTK 4, w tym ogólne wyjaśnienie, jak działa renderowanie i wprowadzanie danych w GTK 3, jakie zmiany są wprowadzane w GTK 4 (>3,90 ), i dlaczego. 6 lutego 2019 roku ogłoszono, że GTK 4 usunie „+” z nazwy projektu.
Zestaw rysunkowy GTK (GDK)
GDK działa jako opakowanie wokół funkcji niskiego poziomu zapewnianych przez podstawowe systemy okienkowe i graficzne.
GDK znajduje się w katalogu /gdk
.
Zestaw wykresów scen GTK (GSK)
GSK to interfejs API renderowania i wykresów scen dla GTK. GSK znajduje się pomiędzy graficznymi elementami sterującymi (widżetami) a renderowaniem. GSK został ostatecznie włączony do wersji GTK 3.90 wydanej w marcu 2017 r.
GSK znajduje się w katalogu /gsk
.
GtkInspector
GtkInspector został wprowadzony w wersji 3.14. GtkInspector można wywołać tylko po zainstalowaniu pakietu programistycznego libgtk-3-dev / gtk+-devel [ permanent dead link ] .
Projektanci GUI
Istnieje kilku projektantów GUI dla GTK. Następujące projekty są aktywne od lipca 2011:
- Glade , obsługuje GtkBuilder , który jest wbudowanym w GTK formatem opisu GUI.
- Gazpacho, konstruktor GUI dla zestawu narzędzi GTK napisany w Pythonie
- Crow Designer opiera się na własnym formacie GuiXml i bibliotece GuiLoader.
- Stetic , część MonoDevelop , zorientowana na Gtk# .
- Gambas od wersji 2.0 na szczycie BASIC
- Xojo w Linuksie
- Lazarus w systemie Linux domyślnie współpracuje z GTK 2
GtkBuilder
GtkBuilder umożliwia projektowanie interfejsów użytkownika bez pisania kodu. Interfejs jest opisany w Extensible Markup Language (XML), który jest następnie ładowany w czasie wykonywania, a obiekty tworzone automatycznie. Glade Interface Designer umożliwia tworzenie interfejsu użytkownika w , w jaki widzisz to, co dostajesz ( WYSIWYG ). Opis interfejsu użytkownika jest niezależny od używanego języka programowania.
Wiązania językowe
Powiązania językowe są dostępne do używania GTK z języków innych niż C, w tym C++ , Genie , JavaScript , Perl , Python , Vala i inne .
GtkSharp, którego nie należy mylić z Gtk#, obsługuje GTK 3.
Gtk#
Deweloperzy | Xamarin |
---|---|
Pierwsze wydanie | 12 marca 2004 |
Wersja stabilna | 2.12.41 / 22 września 2016
|
Wersja podglądu | 2.99.3 (dla GTK3) / 6 czerwca 2014
|
Magazyn | |
Napisane w | C# , XML , Perl , C |
System operacyjny | Windows , macOS , Linux |
Typ | Zestaw narzędzi widżetów |
Licencja | Mniejsza Powszechna Licencja Publiczna GNU |
Strona internetowa |
Gtk# to zestaw powiązań .NET Framework dla zestawu narzędzi graficznego interfejsu użytkownika (GUI) GTK i różnych bibliotek GNOME . Biblioteka ułatwia budowanie graficznych aplikacji GNOME przy użyciu Mono lub dowolnego innego zgodnego środowiska uruchomieniowego języka wspólnego (CLR). Gtk# to system sterowany zdarzeniami, jak każda inna nowoczesna biblioteka okienkowa, w której każdy widżet umożliwia kojarzenie metod obsługi, które są wywoływane, gdy wystąpią określone zdarzenia. [ potrzebne źródło ]
Aplikacje zbudowane przy użyciu Gtk# będą działać na wielu platformach, w tym Linux , Windows i macOS . Pakiety Mono dla Windows zawierają GTK, Gtk# i natywny motyw, dzięki któremu aplikacje wyglądają jak natywne aplikacje Windows. Począwszy od Mono 1.9, uruchamianie aplikacji Gtk# w systemie macOS nie wymaga już uruchamiania X11 .
Glade Interface Designer może być używany z powiązaniami Glade# do łatwego projektowania aplikacji GUI. Projektant GUI o imieniu Stetic jest zintegrowany ze zintegrowanym środowiskiem programistycznym (IDE) MonoDevelop .
Oprócz obsługi standardowego stosu narzędzi programistycznych GTK/GNOME, zestaw gtk-dotnet.dll zapewnia pomost do korzystania z funkcji dostępnych w stosie .NET. W tym momencie obejmuje to funkcjonalność używania System.Drawing do rysowania na widgecie. [ potrzebne źródło ]
Od września 2020 r. obsługa Gtk # dla Gtk3 pozostaje w fazie podglądu, a rozwidlone projekty, takie jak GtkSharp , zostały utworzone w celu zapewnienia pełnej obsługi Gtk3 dla C # i innych języków CLI. Brak wydanej wersji Gtk # z obsługą Gtk3 był wymieniany jako powód usunięcia Banshee w Ubuntu 12.04.
Rozwój
GTK jest rozwijany głównie przez The GNOME Project , który rozwija również platformę programistyczną GNOME i środowisko graficzne GNOME.
Rozwój GTK jest luźno zarządzany. Dyskusja toczy się głównie na kilku publicznych listach mailingowych. Deweloperzy i użytkownicy GNOME zbierają się na dorocznej Europejskiej Konferencji Użytkowników i Programistów GNOME GUADEC , aby omówić obecny stan i przyszły kierunek rozwoju GNOME. GNOME zawiera standardy i programy z freedesktop.org , aby lepiej współpracować z innymi pulpitami. [ potrzebne źródło ]
GTK jest napisany głównie w C . Dostępnych jest wiele powiązań językowych .
W dniu 1 września 2016 r. post na blogu rozwojowym GTK wskazywał między innymi na przyszły schemat numeracji GTK. GTK wersja 3.22, wydana jesienią 2016 roku, miała być ostatnią wersją 3.x, chociaż wersja 3.24 pojawiła się jesienią 2018 roku z opóźnieniem GTK 4. Rozwój GTK 4 wykorzystywał nazwy wersji 3.90, 3.92 itd. aż do pierwsza stabilna wersja GTK 4.0 została wydana w grudniu 2020 r. Pomimo pierwszej stabilnej wersji GTK 4, niektóre aplikacje korzystające z GTK nadal polegają na GTK 2. Na przykład od stycznia 2022 r. GIMP jest nadal przenoszony do GTK 3.
Buduj automatyzację
GTK (oraz GNOME, GLib itp.) wcześniej wykorzystywało system kompilacji GNU (o nazwie Autotools) jako wybrany system automatyzacji kompilacji .
Od 14 sierpnia 2017 główna gałąź GTK jest budowana za pomocą Meson , a pliki systemowe kompilacji Autotools zostały usunięte.
Krytyka
Najczęstszą krytyką GTK jest brak kompatybilności wstecznej w głównych aktualizacjach, zwłaszcza w interfejsie programowania aplikacji (API) i motywach.
Przerwy kompatybilności między mniejszymi wydaniami podczas cyklu rozwoju GTK 3.x zostały wyjaśnione przez Benjamina Otte jako spowodowane silną presją na innowacje, takie jak zapewnienie funkcji, których oczekują współcześni użytkownicy i obsługa coraz bardziej wpływowego protokołu serwera wyświetlania Wayland . Wraz z wydaniem GTK 4 presja związana z potrzebą innowacji zostanie uwolniona, a równowaga między stabilnością a innowacjami przechyli się w stronę stabilności. Podobnie ostatnie zmiany w motywach mają na celu ulepszenie i ustabilizowanie tej części interfejsu API, co oznacza, że część inwestycji teraz powinna zwrócić się później.
- Dirk Hohndel, programista Subsurface i członek Intel Open-Source Technology Center, skrytykował programistów GTK za to, że są agresywni i ignorują większość próśb społeczności.
- Hong Jen Yee, twórca LXDE (której wersja GTK została usunięta i wszystkie wysiłki skupiły się na porcie Qt ), wyraził pogardę dla wersji 3 radykalnych zmian API zestawu narzędzi GTK i zwiększonego zużycia pamięci oraz przeportował Menedżera plików PCMan (PCManFM) do Qt . PCManFM jest rozwijany jednocześnie z GTK i backendem Qt.
- Odtwarzacz muzyki Audacious został przeniesiony do Qt w wersji 3.6. Powody podane przez programistów obejmują przejście do dekoracji okien po stronie klienta, które, jak twierdzą, powodują, że aplikacja wygląda „ GNOME -y i nie na miejscu”.
- Wireshark przeszedł na Qt, ponieważ nie miał dobrych doświadczeń z wieloplatformową obsługą GTK.
Używać
Aplikacje
Niektóre godne uwagi aplikacje, które używają GTK jako zestawu narzędzi widżetów, obejmują:
- Ardor , cyfrowa stacja robocza audio (DAW)
- Deluge , klient BitTorrent
- Foliate , czytnik e-booków
- GIMP , edytor grafiki rastrowej
- GNOME Builder , zintegrowane środowisko programistyczne (IDE)
- Podstawowe aplikacje GNOME , zbiór aplikacji jako standardowy pakiet środowiska graficznego GNOME
- GNOME Evolution , menedżer informacji osobistych
- HandBrake , cyfrowy transkoder wideo
- Inkscape , edytor grafiki wektorowej
- LibreOffice , pakiet biurowy
- Lutris , menedżer gry
- Mozilla Firefox , przeglądarka internetowa
- Mozilla Thunderbird , menedżer informacji osobistych
- Pitivi , edytor wideo
- PCSX-Reloaded , emulator konsoli do gier wideo
- Remmina , klient zdalnego pulpitu
- Transmisja , klient BitTorrent
Środowiska pulpitu
Kilka środowisk graficznych wykorzystuje GTK jako zestaw narzędzi widżetów.
Aktualny
- GNOME , oparty na GTK, co oznacza, że programy natywne dla GNOME używają GTK
- Budgie , zbudowany od podstaw dla następcy SolusOS, systemu operacyjnego Solus
- Cinnamon , widelec GNOME 3, który używa GTK w wersji 3
- MATE , rozwidlenie GNOME 2, które używa GTK 3 od wersji 1.18
- Xfce , oparty na GTK 3 od wersji 4.14
- Pantheon używa wyłącznie GTK 3, rozwijanego przez elementary OS
- Sugar , środowisko graficzne dla szkół podstawowych dla młodzieży , które wykorzystuje GTK, zwłaszcza PyGTK
- Phosh , mobilny interfejs użytkownika zaprojektowany dla PureOS
- LXDE (Lightweight X11 Desktop Environment) jest oparte na GTK 2
- Unity , dawne domyślne środowisko graficzne Ubuntu
Nieaktywny
- Access Linux Platform (następca platformy Palm OS PDA )
- Consort, tryb awaryjny GNOME 3.4 – rozwidlenie od SolusOS
- GPE , środowisko palmtopowe GPE
- ROX Desktop , lekki komputer stacjonarny z funkcjami GUI systemu operacyjnego RISC
Różnorodny
Programy GTK mogą być uruchamiane w środowiskach graficznych opartych na X11 i Wayland lub menedżerach okien, nawet tych, które nie są wykonane z GTK, pod warunkiem zainstalowania potrzebnych bibliotek; dotyczy to również macOS , jeśli zainstalowano aplikację X11.app . GTK można również uruchomić w systemie Microsoft Windows , gdzie jest używany przez niektóre popularne aplikacje wieloplatformowe, takie jak Pidgin i GIMP. wxWidgets , wieloplatformowy zestaw narzędzi GUI, domyślnie używa GTK w systemie Linux. Inne porty to DirectFB (używany na przykład przez instalator Debiana ) i ncurses .
Menedżery okien
Następujące menedżery okien używają GTK:
GtkSourceView
Do podświetlania składni służy GtkSourceView, „widget edycji kodu źródłowego”. GtkSourceView jest utrzymywany przez GNOME oddzielnie od GTK jako biblioteka: gtksourceview . W planach jest zmiana nazwy na gsv.
GtkSpell
GtkSpell to biblioteka niezależna od GTK. GtkSpell zależy od GTK i Enchant . Enchant to opakowanie dla ispell, hunspell itp., rzeczywistego silnika/oprogramowania do sprawdzania pisowni . GtkSpell używa widżetu GtkTextView firmy GTK do wyróżniania błędnie napisanych słów i oferowania wymiany.
Przykład
Dokumentacja jest dostępna tutaj:
Poniższy kod przedstawia graficzny program GTK hello -world w języku programowania C. Ten program ma okno z tytułem "Witaj, świecie!" i etykietę z podobnym tekstem.
0
// helloworld.c #include <gtk/gtk.h> /* Wywołanie zwrotne, które zostanie wywołane, gdy aplikacja zostanie aktywowana */ static void aktywuj_callback ( GApplication * app , gpointer user_data ) { GtkWidget * window ; GtkWidget * etykieta ; /* Utwórz główne okno najwyższego poziomu */ window = gtk_window_new (); /* Nadaj mu tytuł */ gtk_window_set_title ( GTK_WINDOW ( okno ), "Witaj, świecie!" ); /* Ustawienie domyślnego rozmiaru okna */ gtk_window_set_default_size ( GTK_WINDOW ( window ), 200 , 100 ); /* Przypisz zmienną „etykieta” do nowej etykiety GTK, * z tekstem „Witaj, świecie!” */ label = gtk_label_new ( "Witaj, świecie!" ); /* Umieść etykietę w głównym oknie */ gtk_window_set_child ( GTK_WINDOW ( okno ), label ); /* Poinformuj aplikację o oknie. * Proces aplikacji będzie działał, dopóki wszystkie * okna nie zostaną zamknięte */ gtk_application_add_window ( GTK_APPLICATION ( aplikacja ), GTK_WINDOW ( okno )); /* Upewnij się, że wszystko, okno i etykieta, są widoczne */ gtk_widget_show ( okno ); } int main ( int argc , char * argv []) { /* Utwórz naszą aplikację testową */ GtkApplication * application = gtk_application_new ( "org.wikipedia.gtktest" , ); /* Podłącz nasz handler do wywołania zwrotnego "activate", które zostanie wywołane * gdy aplikacja zostanie aktywowana przez użytkownika, np. przy pierwszym uruchomieniu */ g_signal_connect ( application , "activate" , G_CALLBACK ( aktywuj_callback ), NULL ); /* Uruchom aplikację i zwróć jej status */ return g_application_run ( G_APPLICATION ( application ), argc , argv ); }
Wymaga najpierw zainstalowania bibliotek w Debianie lub pochodnych: $ sudo apt-get install libgtk-4-dev
Używając pkg-config w powłoce Unix , ten kod można skompilować za pomocą następującego polecenia: $ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld
Wywołaj program: $ ./helloworld
Historia
Linuks
GTK został pierwotnie zaprojektowany i używany w programie GNU Image Manipulation Program (GIMP) jako zamiennik zestawu narzędzi Motif ; w pewnym momencie Peter Mattis rozczarował się Motifem i zaczął pisać własny zestaw narzędzi GUI o nazwie GIMP Toolkit iz powodzeniem zastąpił Motif wydaniem GIMP 0.60. W końcu GTK został ponownie napisany, aby był zorientowany obiektowo i został przemianowany na GTK +. Zostało to po raz pierwszy użyte w wersji 0.99 GIMP-a. GTK został następnie przyjęty do konserwacji przez Fundację GNOME , która używa go w środowisku graficznym GNOME.
Seria wydań GTK 2.0.0 wprowadziła nowe funkcje, które obejmują ulepszone renderowanie tekstu za pomocą Pango , nowy silnik motywów , ulepszoną dostępność za pomocą zestawu narzędzi ułatwień dostępu , przejście do Unicode przy użyciu ciągów znaków UTF-8 oraz bardziej elastyczne API. Począwszy od wersji 2.8, GTK 2 zależy od Cairo do renderowania grafiki wektorowej.
Wersja GTK 3.0.0 zawierała poprawioną obsługę urządzeń wejściowych, obsługę motywów napisanych za pomocą składni podobnej do CSS oraz możliwość otrzymywania informacji o innych otwartych aplikacjach GTK.
„+” został usunięty, powracając do zwykłego „GTK” w lutym 2019 r. Podczas Hackathonu .
System operacyjny Mac
Z Quartz -backend GTK jest dostępny w macOS .
Okna
- Po GTK 2.24.10 i 3.6.4 Rozwój systemu Windows z instalatorem został zamknięty przez Gnome. Instalacja MSYS2 w systemie Windows to dobry sposób na użycie rzeczywistego GTK.
- GTK 2.24.10 i 3.6.4 są dostępne w Internecie, ale zawierają wiele błędów i są ograniczone w stosunku do aktualnych wersji.
- Wersja dla 64-bitowego systemu Windows jest przygotowywana przez Toma Schoonjansa z 2.24.33 (aktualnie jak Linux) i 3.24.24 (aktualnie jak Linux) od stycznia 2021 roku.
- Aktualizacja Fall Creators Update systemu Windows 10 obejmuje podsystem Windows dla systemu Linux (WSL). Dzięki dystrybucjom Linuksa, takim jak Ubuntu lub Debian, dostępnym w Microsoft Store i serwerowi X, takiemu jak Xming lub VcXsvr, tysiące programów, takich jak GTK 2 lub 3, może działać z obsługą X lub terminali.
OpenVMS
HP stwierdził, że ich celem było połączenie potrzebnych zmian OpenVMS ze strumieniem rozwoju GTK w wersji 1.3, jednak nigdy się to nie zmaterializowało. Najnowsza wersja GTK dla OpenVMS to wersja 1.2.10.
GTK 4
Jedną z kardynalnych nowości wdrożonych w cyklu rozwoju GTK 4 (tj. GTK 3.92 itp.) było usunięcie opcji dostosowywania po stronie użytkownika (jak indywidualne skróty klawiaturowe, które można było ustawić w GTK+ 2), delegowanie funkcjonalności do obiektów pomocniczych zamiast kodowania ich w klasach podstawowych dostarczonych przez GTK.
- obsługa zdarzeń z programów obsługi sygnałów opisana przez GtkWidget jest delegowana do kontrolerów zdarzeń
- renderowanie jest delegowane do obiektów GtkSnapshot
- mechanizm układu z GtkWidget jest delegowany do GtkLayoutManager
W 2018-Jan-26 na DevConf.cz Matthias Clasen przedstawił przegląd ówczesnego stanu rozwoju GTK 4, w tym ogólne wyjaśnienie, jak działało renderowanie i wprowadzanie danych w GTK 3, jakie zmiany były wprowadzane w GTK 4, oraz przyczyny tych zmian. Podano również przykłady rzeczy, które stały się możliwe dzięki GTK 4.
Wydania
Legenda:
Stara wersja
Starsza wersja, nadal utrzymywana
Ostatnia wersja
Najnowsza wersja podglądu
Przyszłe wydanie
|
|||||||
Seria wydawnicza | Pierwsze wydanie | Główne ulepszenia | Najnowsza wersja pomocnicza | ||||
---|---|---|---|---|---|---|---|
1.0 | 1998-04-13 | Pierwsza stabilna wersja | 1.0.6 | ||||
1.2 | 1999-02-25 | Nowe widżety :
|
1.2.10 | ||||
2.0 | 2002-03-11 |
GOobiekt
Ogólne wsparcie dla UTF-8 |
2.0.9 | ||||
2.2 | 2002-12-22 | Wsparcie wielogłowicowe | 2.2.4 | ||||
2.4 | 2004-03-16 | Nowe widżety:
|
2.4.14 | ||||
2.6 | 2004-12-16 | Nowe widżety:
Ostatni obsługujący Windows 98 / Me |
2.6.10 | ||||
2.8 | 2005-08-13 | Większość widżetów jest renderowana przez Cairo | 2.8.20 | ||||
2.10 | 2006-07-03 | Nowe widżety:
Obsługa drukowania: GtkPrintOperation |
2.10.14 | ||||
2.12 | 2007-09-14 | GtkBuilder | 2.12.12 | ||||
2.14 | 2008-09-04 | Obsługa ładowania plików JPEG 2000 | 2.14.7 | ||||
2.16 | 2009-03-13 | Nowy widżet: GtkOrientable Ostrzeżenie o Caps Lock przy wpisywaniu hasła Ulepszenia GtkScale, GtkStatusIcon, GtkFileChooser |
2.16.6 | ||||
2.18 | 2009-09-23 | Nowy widżet: GtkInfoBar Ulepszenie wyboru pliku, drukowania Aby usunąć większość niezbędnego IPC między aplikacją X11 a serwerem X11, GDK został przepisany (głównie przez Alexandra Larssona) tak, aby używał „okien po stronie klienta”, tj. GdkWindow, które musi mieć każdy widżet, należy teraz do klienta |
2.18.9 | ||||
2.20 | 2010-03-23 | Nowe widżety:
Ulepszenia w wyborze plików, obsłudze klawiatury, GDK Dane introspekcji są teraz zawarte w GTK |
2.20.1 | ||||
2.22 | 2010-09-23 |
GdkPixbuf przeniesiony do osobnego modułu Większość rysunków GDK opiera się na Kairze Wiele danych wewnętrznych jest teraz prywatnych i można je zapieczętować w ramach przygotowań do GTK 3 |
2.22.1 | ||||
2.24 | 2011-01-30 | Nowy widżet: GtkComboBoxText, który wcześniej był niestandardowym widżetem dostarczanym z Gtkmm Zaplecze drukowania CUPS może wysyłać zadania drukowania w formacie PDF GtkBuilder zyskał obsługę znaczników tekstowych i przycisków narzędzi menu oraz dodano wiele poprawek adnotacji introspekcji |
2.24.32 (08.01.2018) |
||||
3.0 | 2011-02-10 | Rozwój i projekt wydania GTK 3 zestawu narzędzi rozpoczęto w lutym 2009 podczas GTK Theming Hackfest, który odbył się w Dublinie.
Ukończono głównie Projekt Ridley
Cały rendering odbywa się za pomocą Cairo GDK stał się bardziej niezależny od X11 XInput2, interfejs API motywu jest oparty na kaskadowych arkuszach stylów (CSS), pogarszając możliwą do osiągnięcia wydajność dla częstotliwości odświeżania 60 Hz |
3.0.12 | ||||
3.2 | 2011-09-25 | Nowe widżety:
Nowe okno wyboru czcionek Nowe eksperymentalne backendy: |
3.2.4 | ||||
3.4 | 2012-03-26 | Obsługa menu w GtkApplication Nowy wybór kolorów Dodano obsługę urządzeń dotykowych Dodano obsługę płynnego przewijania GtkScrolledWindow wykona przewijanie kinetyczne za pomocą urządzeń dotykowych ulepszono obsługę systemu macOS Jest to pierwsza wersja GTK 3, która dobrze działa w systemie Windows Backend Wayland został zaktualizowany do aktualnej wersji Wayland Przyciski obrotu otrzymały nowy wygląd Dostępność: obsługa dostępności widoku drzewa została przepisana Pełniejsza obsługa motywów CSS |
3.4.4 | ||||
3.6 | 2012-09-24 | Nowe widżety:
Pionowe przyciski obrotowe Animacje CSS, rozmycie cieni Obsługa przenikania i przejść w motywach |
3.6.5 | ||||
3.8 | 2013-03-25 | Stabilna obsługa Wayland 1.0 Wsparcie dla serwera broadwayd Ulepszone motywy Lepsze zarządzanie geometrią Ulepszenia dotykowe Wsparcie z menedżerem okien dla protokołu synchronizacji ramek Dodano GdkFrameClock |
3.8.9 | ||||
3.10 | 2013-09-23 | Nowe widżety:
Wsparcie dla Waylanda 1.2
Dodany:
REMOVED:
Odrywane pozycje menu oraz wiele ustawień GTK |
3.10.9 | ||||
3.12 | 2014-03-25 | Dekoracje po stronie klienta Wsparcie dla Waylanda 1.5 Nowy widżet: GtkPopover (alternatywa dla menu i okien dialogowych) |
3.12.2 | ||||
3.14 | 2014-09-22 | Wprowadzono GtkInspector (kopia gtkparasite). Ulepszona obsługa gestów / multi-touch połączona Przestarzałe:
Większość widżetów została przekonwertowana, aby wewnętrznie używać gestów Wayland obsługuje tryb klasyczny GNOME Shell |
3.14.15 | ||||
3.16 | 2015-03-22 | GDK obsługuje renderowanie okien przy użyciu OpenGL dla X11 i Wayland przy użyciu libepoxy Nowe widżety:
Zmieniono przewijanie ( pasek przewijania jest domyślnie ukryty) Eksperymentalny backend Mir |
3.16.7 | ||||
3.18 | 2015-09-23 | Dodaj infrastrukturę węzła CSS Więcej odświeżenia projektu selektora plików i lepsze wyszukiwanie selektora plików Zrezygnowano z obsługi systemu Windows XP Obsługa modelu dla listy i pola przepływu Kinetyczne przewijanie touchpada Gesty touchpada (Wayland) narzędzie gtk-builder-tool Okna tylko wyjściowe |
3.18.9 | ||||
3.20 | 2016-03-21 | Dalsza integracja węzłów CSS Przeciągnij i upuść w dół do GDK Nowy widżet: GtkShortcutsWindow (pokazuje skróty klawiaturowe i gesty aplikacji) |
3.20.10 | ||||
3.22 | 2016-09-21 | Ostatnie wydanie 3.x Obsługa tabletów Wayland została połączona, obsługa tabletów graficznych jest uważana za kompletną GTK 3.22 będzie równie stabilne (a przez to „nudne”) jak GTK 2 |
od 3 lat 3.22.29 |
||||
3.24 | 2018-09-03 | 3.22 miała być ostatnią wersją serii GTK 3 Seria
Uderzenia zależności – wymagają:
Nowe funkcje wyboru czcionek:
Nowe funkcje emotikonów:
Inne nowe interfejsy API: gdk_window_move_to_rect Wayland: użyj anonimowej pamięci współdzielonej we FreeBSD Backportowane kontrolery zdarzeń z GTK 4:
Wycofaj kilka interfejsów API, które zniknęły w GTK 4:
|
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 |
Zestaw GTK Scene Graph Kit (GSK) został połączony Usuń wszelkie interfejsy API oznaczone jako przestarzałe
Ciężki rozwój
|
3.89.1 |
||||
3.92 | 2017-10-18 | Ponieważ GNOME 3.26 zostało wydane już 13 września 2017 r., nie było oparte na GTK 3.92. Autotools GNU zostało zastąpione przez Meson . |
3.91.0 |
||||
3.94 | 2018-06-26 | 3,93
Zmieniono nazwę GdkWindow na GdkSurface Nowa abstrakcja dla zawartości do rysowania: GdkPaintable Obsługiwane jest wyświetlanie multimediów za pomocą:
|
3,93 3,94,0 |
||||
3.96 | 2019-05-07 |
Polecenie uproszczenia gtk4-builder-tool zyskało opcję --3to4 do konwersji plików GTK3 ui na GTK4; chociaż w przypadku menu AMTK, paski narzędzi lub inne obiekty, takie jak GtkShortcutsWindow, są tworzone programowo (nie za pomocą pliku *.ui), ale za pomocą wygodnych interfejsów API. GtkWidget może teraz używać GtkLayoutManager do alokacji rozmiaru
Obsługa fokusu została przepisana, a generowanie zdarzeń zmiany fokusu zostało ujednolicone ze zdarzeniami przecinania Zdarzenia zostały uproszczone i służą tylko do wprowadzania danych:
|
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 | ||||||
4.6 | 2021-12-30 | ||||||
4.8 | 2021-12-30 |
Zobacz też
- Dekoracja po stronie klienta
- Lista zestawów narzędzi widżetów
- GDK – zestaw do rysowania GIMP znajduje się pomiędzy biblioteką xlib a biblioteką GTK, obsługując podstawowe renderowanie, takie jak prymitywy rysunkowe, grafika rastrowa (mapy bitowe), kursory, czcionki, a także zdarzenia w oknie oraz funkcja przeciągania i upuszczania
- gtkmm – powiązania C++ dla GTK
- Qt – wieloplatformowy framework i zestaw narzędzi
- Xojo – wieloplatformowe narzędzie programistyczne i framework
- Enlightenment Foundation Libraries (EFL) - zestaw narzędzi widżetów napisany dla menedżera okien Enlightenment
- FLTK – lekki, wieloplatformowy, nienatywny zestaw narzędzi do widżetów
- Zestaw narzędzi FOX — szybki, wieloplatformowy zestaw narzędzi typu open source widżetów
- IUP – wieloplatformowy zestaw narzędzi do budowania natywnych graficznych interfejsów użytkownika
- Ostateczny ++
- Biblioteka komponentów wizualnych (VCL)
- Vala – zorientowany obiektowo język programowania z samoobsługowym kompilatorem, który generuje kod C i wykorzystuje system GObject.
- wxWidgets — wieloplatformowy zestaw narzędzi GUI, którego celem jest bezpośrednie wykorzystanie natywnego graficznego interfejsu API każdej platformy, gdy tylko jest to możliwe.
Bibliografia
- Krause, Andrew (23 kwietnia 2007), Foundations of GTK+ Development (wyd. 1), Apress , ISBN 978-1-59059-793-4
- Wright, Peter (15 maja 2000), Beginning GTK + and GNOME (1st ed.), Peer Information , ISBN 978-1-86100-381-2
- Logan, Syd (6 września 2001), Gtk + Programming in C (wyd. 1), Prentice Hall , ISBN 978-0-13-014264-1
Linki zewnętrzne
- Interfejsy programowania aplikacji
- Biblioteki C (język programowania).
- Oprogramowanie wieloplatformowe
- Darmowe biblioteki komputerowe
- Wolne oprogramowanie zaprogramowane w C
- GNOM
- GTK
- Oprogramowanie wykorzystujące Cairo (grafika)
- Oprogramowanie wykorzystujące Meson
- Oprogramowanie korzystające z licencji LGPL
- Zestawy narzędzi widżetów
- Biblioteki oparte na X