GTK

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 19. května 2015; kontroly vyžadují 67 úprav .
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]

Historie

Čí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

Architektura

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

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.

Použití

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+ Správci oken používající GTK+ Aplikace využívající GTK+

GTK+ 3.0

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.

Příklad programu

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`

Viz také

Rozhraní pro jiné programovací jazyky

Poznámky

  1. Podívejte se na soubor AUTHORS ve zdrojovém archivu GTK+ .
  2. http://directory.fsf.org/wiki/gtk+
  3. https://gitlab.gnome.org/GNOME/gtk/-/tags/4.8.2
  4. Projekt gtk Open Source na Open Hub: Stránka jazyků - 2006.
  5. Adresář svobodného softwaru
  6. Přehled GTK+ a jeho knihoven 
  7. Projekt GTK+ oznamuje přejmenování na GTK . Staženo 10. dubna 2019. Archivováno z originálu 8. února 2019.
  8. ↑ Vydáno 1 2 GTK+ 2.18.0  (eng.)  (downlink) . Získáno 23. září 2009. Archivováno z originálu 23. srpna 2011.
  9. gtk 4.0.0 . Získáno 27. října 2021. Archivováno z originálu dne 28. října 2021.
  10. gtk 4.2.0 . Získáno 27. října 2021. Archivováno z originálu dne 27. října 2021.
  11. gtk 4.4.0 . Získáno 27. října 2021. Archivováno z originálu dne 24. srpna 2021.
  12. gtk 4.6.0 . Získáno 31. března 2022. Archivováno z originálu dne 23. ledna 2022.
  13. GTK tutoriál (downlink) . Získáno 9. srpna 2011. Archivováno z originálu dne 22. srpna 2011. 
  14. Go-GTK . mattn.github.io. Získáno 20. listopadu 2016. Archivováno z originálu 27. listopadu 2016.
  15. GtkSharp - Mono . Získáno 7. května 2010. Archivováno z originálu dne 26. ledna 2021.
  16. Oznámení „GTK+ Theming Hackfest“ . Získáno 25. dubna 2009. Archivováno z originálu 17. července 2011.
  17. Pracovní plán Gtk+ 3.0 . Získáno 25. dubna 2009. Archivováno z originálu 12. dubna 2009.

Odkazy