GTK | |
---|---|
Typ | aplikační rámec [d] a knihovna widgetů [d] |
Autor |
Tým GTK+, původní autoři: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Vývojář | GNOME Foundation a projekt GNU [2] |
Zapsáno v | C [4] |
Operační systém | GNU/Linux , macOS , operační systém podobný Unixu , Microsoft Windows a Linux |
Jazyky rozhraní | více jazyků [d] |
První vydání | 14. dubna 1998 |
Hardwarová platforma | multiplatformní |
Nejnovější verze | |
Stát | aktivní |
Licence | LGPL-2.1 [d] [5][6]aGNU LGPL |
webová stránka | gtk.org _ |
Mediální soubory na Wikimedia Commons |
GTK (dříve GTK+ [7] ; zkratka pro GIMP ToolKit ) je multiplatformní knihovna rozhraní (framework) se snadno použitelným API , spolu s Qt je jednou ze dvou nejoblíbenějších knihoven pro Wayland a X Window . Systém dnes .
Původně byl součástí grafického editoru GIMP , ale vyvinul se v samostatný projekt a získal značnou popularitu. GTK je svobodný software distribuovaný za podmínek GNU LGPL , který vám umožňuje vytvářet svobodný i proprietární software pomocí knihovny. GTK je oficiální knihovna pro tvorbu GUI pro projekt GNU . [osm]
Číslo verze | Datum vydání verze | Významné změny | Poslední vedlejší verze |
---|---|---|---|
1,0 | 14. dubna 1998 | První stabilní vydání | 1.0.6 |
1.2 | 27. února 1999 | Nové widgety (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2,0 | 11. března 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22. prosince 2002 | Podpora více hlav | 2.2.4 |
2.4 | 16. března 2004 | Nové widgety (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16. prosince 2004 | Nové widgety (GtkIconView, GtkAboutDialog, GtkCellView); toto je poslední verze, která podporuje Windows 98 / ME |
2.6.10 |
2.8 | 13. srpna 2005 | Káhirská integrace | 2.8.20 |
2.10 | 3. července 2006 | Nové widgety (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) a podpora tisku (GtkPrintOperation) |
2.10.14 |
2.12 | 14. září 2007 | GtkBuilder | 2.12.12 |
2.14 | 4. září 2008 | Podpora stahování JPEG 2000 | 2.14.7 |
2.16 | 13. března 2009 | Nový GtkOrientable, v poli pro zadání hesla se zobrazí varování, když je povolena funkce Caps Lock , vylepšení v GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23. září 2009 | Nový GtkInfoBar. Vylepšení dialogu pro výběr souboru, tisku. GDK byl přepsán tak, aby používal „okna na straně klienta“ |
2.18.9 |
2.20 | 23. března 2010 | Nový GtkSpinner a GtkToolPalette, GtkOffscreenWindow. Vylepšení v dialogu pro výběr souborů, ovládání klávesnice, GDK. Zahrnuta data introspekce GObject |
2.20.1 |
2.22 | 23. září 2010 | gdk-pixbuf rozdělen do samostatného modulu, většinu funkcí kreslení nyní provádí Káhira |
2.22.1 |
2.24 | 30. ledna 2011 | Nový zjednodušený widget ComboBox (GtkComboBoxText), tiskový backend CUPS může posílat úlohy do PDF, GtkBuilder získal podporu pro textové značky, mnoho oprav introspekčních symbolů |
2.24.0 |
3.0 | 10. února 2011 | Vykreslování má nyní zcela na starosti Káhira , abstrakce z X11, pomocí XInput2, podpory vzhledů podobných CSS |
3.0.12 |
3.2 | 25. září 2011 | Nové experimentální backendy Wayland a HTML5 , nový dialog pro výběr písem, nové widgety: GtkLockButton a GtkOverlay |
3.2.4 |
3.4 | 26. března 2012 | Podpora dotykových displejů, včetně vícedotykových, podpora plynulého posouvání, vylepšená podpora pro Windows, MacOS X, rozšířené API pro vizuální motivy |
3.4.4 |
3.6 | 24. září 2012 | Nové widgety: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Tlačítka pro zadávání čísel GtkSpinButton lze nyní umístit svisle. Podpora CSS animací, rozmazané stíny. |
3.6.5 |
3.8 | 13. května 2013 | Podpora Wayland 1.0, přepracování backendu Broadway GDK, vylepšená témata a správa geometrie. Přidána podpora vyskakovacích oken, byla provedena rozsáhlá práce na zlepšení výkonu |
3.8.9 |
3.10 | 23. září 2013 | Nové widgety (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Podpora Wayland 1.2 (maximalizace, animované kurzory, více monitorů, nastavení, vlastní povrchy a synchronizace snímků) |
3.10.9 |
3.12 | 25. března 2014 | podpora Wayland 1.5; Nové widgety (Popover, GtkActionBar, GtkFlowBox). Vylepšená podpora globálních nabídek v OS X. | 3.12.2 |
3.14 | 22. září 2014 | podpora Wayland 1.6; Integrace interaktivního debuggeru GtkInspector. Podpora pro widgety GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon, GtkThemingEngine byla ukončena. | 3.14.6 |
3.16 | 22. března 2015 | Vestavěná podpora GDK pro kreslení oken přes OpenGL pro X11 a Wayland přes libepoxy pomocí GLX nebo EGL, nové widgety (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), podpora Experimental Mir . | 3.16.0 |
3.18 | 22. listopadu 2015 | Aktualizovaný design výběru souborů, odebrána podpora pro Windows XP | 3.18.5 |
3.20 | 21. března 2016 | Implementovaný systém uzlů CSS, nový widget GtkShortcutsWindow | 3.20.3 (nedostupný odkaz) |
3.22 | 20. září 2016 | Přidáno GtkPadController API pro ovládání gest z tabletů, nový widget GtkShortcutLabel, integrovaná technologie Flatpak | 3.22.0 |
4,0 | 16. prosince 2020 [9] | Vydání sady grafických nástrojů GTK 4.0 | 4.0.3 |
4.2 | 30. března 2021 [10] | Vydání sady grafických nástrojů GTK 4.2 | 4.2.1 |
4.4 | 23. srpna 2021 [11] | Vydání sady grafických nástrojů GTK 4.4 | 4.4.0 |
4.6 | 30. prosince 2021 [12] | K dispozici je sada grafických nástrojů GTK 4.6 | 4.6.2 |
GTK+ je napsáno v C , ale přesto je objektově orientované [13] . Jedním z důvodů pro výběr C jako jazyka byla touha snadno vytvářet rozhraní pro jiné programovací jazyky . V důsledku toho lze GTK+ psát v následujících programovacích jazycích:
Jazyk | název | Podpěra, podpora |
---|---|---|
Ada | GtkAda | Částečná podpora do 2.18 |
C | GTK+ | Vestavěný |
C++ | gtkmm | Ano |
C# a další programovací jazyky .NET |
gtk# | Částečná podpora do 2.20 |
D | gtkD | Podpora GTK2 byla gtkD-1.7.4, po - GTK3 (plus Cairo , Gda , Gl , GStreamer ) |
Erlang | gtkNode | Částečná podpora do 2.16 |
Fortran | gtk-fortran | Částečná podpora až 2,24 / 3,0 |
Jít | go-gtk | Částečná podpora (33 %) [14] |
GOB | jazyky napsané pro systém GObject . | Ano |
Džin | jazyky napsané pro systém GObject . | Ano |
Haskell | gtk2hs | Ano |
FreeBASIC | GTK+tabák2 | Částečná podpora před verzí 2.22: Podporuje také GTK3 |
Pascal zdarma | (hlavička) integrovaná do hlavní distribuce | GTK 2.16 s částečnou pozdější podporou |
Jáva | java-gnome | Částečná podpora až do 2.20 (není k dispozici ve Windows) |
JavaScript | osivo / GJS | Ano |
Lua | lgob | Podporuje všechny verze počínaje 2.16 |
Lisp | cl-cffi-gtk | |
Lua | LuaGtk | Částečná podpora do 2.16 |
Node.js | uzel-gtk | Ano |
OCaml | LabelGTK | Částečná podpora do 2.16 |
Perl | perl-Gtk3 | Ano |
PHP | PHP-GTK | Částečná podpora do 2.20 |
PureBasic | gtk2 | Ano |
Krajta | GObject - introspekce přes PyGI , dříve PyGTK | Ano |
R | RGtk2 | Částečná podpora do 2.12 |
rubín | ruby-gtk2 | Ano |
Pokec | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | Ano |
Vala | jazyky napsané pro systém GObject . | Ano |
GTK+ se ve skutečnosti skládá ze dvou složek: GTK a GDK . První obsahuje sadu prvků uživatelského rozhraní neboli " widgetů " (jako je tlačítko , seznam, pole pro zadávání textu atd. ) pro různé úkoly. GDK je zodpovědná za výstup obrazovky a může k tomu používat funkce X Window System , Wayland , Linux Framebuffer , WinAPI nebo Mac OS X. Od verze 2.8 bylo GDK z velké části (ale ne úplně) nahrazeno systémem vykreslování vektorové grafiky Cairo .
Kromě Cairo závisí GTK+ na třech knihovnách – GLib , Pango a ATK – které jsou vyvíjeny společně s GTK+, ale lze je používat i samostatně. [osm]
Vzhled GUI vytvořených pomocí GTK+ může být konfigurován uživatelem a/nebo programátorem. V tomto případě se konfigurují nejen barvy a písma, ale také způsob zobrazení různých prvků. Toho je dosaženo použitím „ motorů “ pro zobrazení. Připojením dalšího enginu můžete radikálně změnit vzhled programů. Některé motory mohou například používat pseudo 3D zobrazení, jiné více „ploché“ zobrazení atd.
Desktopy GNOME a Xfce jsou založeny na GTK+ . Programy využívající GTK+ mohou běžet v jiných prostředích, jako je KDE a LXQt . Kromě toho lze GTK+ provozovat také na operačních systémech rodiny Microsoft Windows a Mac OS X.
GTK+ byla také vybrána jako hlavní knihovna pro vytváření uživatelského rozhraní pro Mono (port Microsoft.NET pro Linux). [patnáct]
Následuje neúplný (protože GTK je příliš populární) seznam projektů využívajících GTK:
Desktopová prostředí, která používají GTK+GTK verze 3.0.0 revidovala manipulaci se vstupními zařízeními, zahrnula podporu pro témata napsaná syntaxí podobnou CSS a přidala možnost získávat informace z jiných otevřených aplikací GTK.
Vývoj další verze GTK+ začal v únoru 2009 na GTK+ Theming Hackfest v Dublinu [16] . První návrh plánu rozvoje byl zveřejněn 9. dubna 2009 [17] .
10. února 2011 byla vydána GTK+ 3.0.0.
Jednoduchý ahoj světe! » na GTK+ na Linuxu
/* Zahrnout knihovnu GTK+ */ # include <gtk/gtk.h> int main ( int argc , char * argv []) { /* Deklarovat widgety */ GtkWidget * štítek ; // Označení GtkWidget * okno ; // Hlavní okno /* Inicializace GTK+ */ gtk_init ( & argc , & argv ); /* Vytvořte hlavní okno */ okno = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); /* Nastavte nadpis okna na "Hello World!" */ gtk_window_set_title ( GTK_WINDOW ( okno ), "Ahoj světe!" ); /* Vytvořte štítek s textem "Ahoj světe!" */ label = gtk_label_new ( "Ahoj světe!" ); /* Vložení štítku do hlavního okna */ gtk_container_add ( GTK_CONTAINER ( okno ), popisek ); /* Zobrazit okno spolu s widgety */ gtk_widget_show_all ( okno ); /* Připojte ukončovací signál k ukončení programu */ g_signal_connect ( G_OBJECT ( okno ), "zničit" , G_CALLBACK ( gtk_main_quit ), NULL ); /* Aplikace vstupuje do věčné smyčky čekání na akce uživatele */ gtk_main (); návrat 0 ; }Pro kompilaci příkladu musíte spustit příkaz:
gcc název_souboru.c -o název_souboru `pkg-config --cflags --libs gtk+-3.0`V systému Windows můžete příklad zkompilovat pomocí MinGW pomocí následujícího příkazu:
i686-pc-mingw32-gcc název_souboru.c `PKG_CONFIG_LIBDIR=yes PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs gtk+-3.0`GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Základní |
| ||||||||||||||||
Aplikace |
| ||||||||||||||||
Komponenty | |||||||||||||||||
Platformová architektura |
| ||||||||||||||||
Společenství | |||||||||||||||||
Lidé | |||||||||||||||||
|
prvků GUI | Toolkity (sady)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
na nízké úrovni |
| ||||||||||||||||||||||||||
vysoká úroveň |
|