GTK | |
---|---|
Sorts | applikationsramverk [d] och widgetbibliotek [d] |
Författare |
GTK+ Team, originalförfattare: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Utvecklaren | GNOME Foundation och GNU-projektet [2] |
Skrivet i | C [4] |
Operativ system | GNU/Linux , macOS , Unix-liknande operativsystem , Microsoft Windows och Linux |
Gränssnittsspråk | flera språk [d] |
Första upplagan | 14 april 1998 |
Hårdvaruplattform | plattformsoberoende |
senaste versionen |
|
stat | aktiva |
Licens | LGPL-2.1 [d] [5][6]ochGNU LGPL |
Hemsida | gtk.org _ |
Mediafiler på Wikimedia Commons |
GTK (tidigare GTK+ [7] ; kort för GIMP ToolKit ) är ett gränssnittsbibliotek för flera plattformar (ramverk) med ett lättanvänt API , tillsammans med Qt , är ett av de två mest populära biblioteken för Wayland och X Window System idag .
Ursprungligen en del av GIMP -grafikredigeraren , har den utvecklats till ett separat projekt och vunnit anmärkningsvärd popularitet. GTK är fri programvara som distribueras under villkoren i GNU LGPL , som låter dig skapa både gratis och proprietär programvara med hjälp av biblioteket. GTK är det officiella biblioteket för skapande av GUI för GNU-projektet . [åtta]
Versionsnummer | Releasedatum för versionen | Betydande förändringar | Sista mindre versionen |
---|---|---|---|
1.0 | 14 april 1998 | Första stabila releasen | 1.0.6 |
1.2 | 27 februari 1999 | Nya widgets (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2.0 | 11 mars 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22 december 2002 | Multihead stöd | 2.2.4 |
2.4 | 16 mars 2004 | Nya widgets (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16 december 2004 | Nya widgets (GtkIconView, GtkAboutDialog, GtkCellView); detta är den sista versionen som stöder Windows 98 / ME |
2.6.10 |
2.8 | 13 augusti 2005 | Kairo integration | 2.8.20 |
2.10 | 3 juli 2006 | Nya widgets (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) och utskriftsstöd (GtkPrintOperation) |
2.10.14 |
2.12 | 14 september 2007 | GtkBuilder | 2.12.12 |
2.14 | 4 september 2008 | Stöd för nedladdning av JPEG 2000 | 2.14.7 |
2.16 | 13 mars 2009 | Ny GtkOrientable, en varning visas i lösenordsinmatningsfältet när Caps Lock är aktiverat , förbättringar i GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23 september 2009 | Ny GtkInfoBar. Förbättringar i filvalsdialog, utskrift. GDK har skrivits om för att använda "klient-side windows" |
2.18.9 |
2.20 | 23 mars 2010 | Ny GtkSpinner och GtkToolPalette, GtkOffscreenWindow. Förbättringar i filvalsdialog, tangentbordshantering, GDK. GObject introspektionsdata ingår |
2.20.1 |
2.22 | 23 september 2010 | gdk-pixbuf separerat i en separat modul, de flesta av ritningsfunktionerna utförs nu av Kairo |
2.22.1 |
2.24 | 30 januari 2011 | Ny förenklad ComboBox-widget (GtkComboBoxText), CUPS - utskriftsbackend kan skicka jobb till PDF, GtkBuilder fick stöd för texttaggar, massor av fixar till introspektionssymboler |
2.24.0 |
3.0 | 10 februari 2011 | Rendering är nu helt ansvarig för Cairo , en abstraktion från X11, med hjälp av XInput2, stöd för CSS -liknande skinn |
3.0.12 |
3.2 | 25 september 2011 | Nya experimentella Wayland- och HTML5 -backends , ny dialogruta för val av teckensnitt, nya widgets: GtkLockButton och GtkOverlay |
3.2.4 |
3.4 | 26 mars 2012 | Stöd för pekskärmar, inklusive multi-touch, stöd för smidig rullning, förbättrat stöd för Windows, MacOS X, utökat API för visuella teman |
3.4.4 |
3.6 | 24 september 2012 | Nya widgets: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Sifferinmatningsknappar GtkSpinButton kan nu placeras vertikalt. Stöd för CSS-animationer, suddiga skuggor. |
3.6.5 |
3.8 | 13 maj 2013 | Wayland 1.0-stöd, Broadway GDK-backend omdesign, förbättrade teman och geometrihantering. Tillagt stöd för popup-fönster, omfattande arbete har gjorts för att förbättra prestandan |
3.8.9 |
3.10 | 23 september 2013 | Nya widgets (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Wayland 1.2-stöd (maximering, animerade markörer, flera bildskärmar, inställningar, anpassade ytor och ramsynkronisering) |
3.10.9 |
3.12 | 25 mars 2014 | Wayland 1.5-stöd; Nya widgets (Popover, GtkActionBar, GtkFlowBox). Förbättrat globalt menystöd i OS X. | 3.12.2 |
3.14 | 22 september 2014 | Wayland 1.6-stöd; Integration av den interaktiva debuggern GtkInspector. Stöd för GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon, GtkThemingEngine-widgets har upphört. | 3.14.6 |
3.16 | 22 mars 2015 | GDK inbyggt stöd för att rita fönster via OpenGL för X11 och Wayland via libepoxy med GLX eller EGL, nya widgets (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), Experimentell Mir -stöd . | 3.16.0 |
3.18 | 22 november 2015 | Uppdaterad filvalsdesign, borttaget stöd för Windows XP | 3.18.5 |
3.20 | 21 mars 2016 | Implementerat CSS-nodsystem, ny GtkShortcutsWindow- widget | 3.20.3 (inte tillgänglig länk) |
3.22 | 20 september 2016 | Lagt till GtkPadController API för hantering av gester från surfplattor, ny GtkShortcutLabel-widget, integrerad Flatpak-teknik | 3.22.0 |
4.0 | 16 december 2020 [9] | Release av grafikverktygssatsen GTK 4.0 | 4.0.3 |
4.2 | 30 mars 2021 [10] | Release av grafikverktygssatsen GTK 4.2 | 4.2.1 |
4.4 | 23 augusti 2021 [11] | Release av grafikverktygssatsen GTK 4.4 | 4.4.0 |
4.6 | 30 december 2021 [12] | GTK 4.6 grafikverktygssats tillgänglig | 4.6.2 |
GTK+ skrivs i C , men är ändå objektorienterad [13] . En av anledningarna till att välja C som språk var önskan att enkelt bygga gränssnitt för andra programmeringsspråk . Som ett resultat kan GTK+ skrivas på följande programmeringsspråk:
Språk | namn | Stöd |
---|---|---|
Ada | GtkAda | Partiellt stöd upp till 2.18 |
C | GTK+ | Inbyggd |
C++ | gtkmm | Ja |
C# och andra .NET - programmeringsspråk |
gtk# | Delvis support till 2.20 |
D | gtkD | GTK2-stöd var gtkD-1.7.4, efter - GTK3 (plus Kairo , Gda , Gl , GStreamer ) |
Erlang | gtkNode | Partiellt stöd upp till 2.16 |
Fortran | gtk-fortran | Partiellt stöd upp till 2.24 / 3.0 |
gå | go-gtk | Partiellt stöd (33 %) [14] |
GOB | språk skrivna för GObject-systemet . | Ja |
Ande | språk skrivna för GObject-systemet . | Ja |
Haskell | gtk2hs | Ja |
FreeBASIC | GTK+tobak2 | Partiellt stöd före 2.22: Stöds även av GTK3 |
Gratis Pascal | (header) integrerad i kärndistributionen | GTK 2.16 med partiellt senare stöd |
Java | java-gnome | Partiellt stöd upp till 2.20 (ej tillgängligt på Windows) |
JavaScript | frö / GJS | Ja |
Lua | lgob | Stöder alla versioner från 2.16 |
Läspa | cl-cffi-gtk | |
Lua | LuaGtk | Partiellt stöd upp till 2.16 |
Node.js | nod-gtk | Ja |
Ocaml | LabelGTK | Partiellt stöd upp till 2.16 |
Perl | perl-Gtk3 | Ja |
PHP | PHP-GTK | Delvis support till 2.20 |
PureBasic | gtk2 | Ja |
Pytonorm | GObject - introspektion via PyGI , tidigare PyGTK | Ja |
R | RGtk2 | Partiellt stöd upp till 2.12 |
rubin | ruby-gtk2 | Ja |
Småprat | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | Ja |
Vala | språk skrivna för GObject-systemet . | Ja |
Egentligen består GTK+ av två komponenter: GTK och GDK . Den första innehåller en uppsättning användargränssnittselement, eller " widgets " (som en knapp , en lista, ett textinmatningsfält , etc. ) för olika uppgifter. GDK är ansvarig för skärmutdata och kan använda funktionerna X Window System , Wayland , Linux Framebuffer , WinAPI eller Mac OS X för att göra detta . Sedan version 2.8 har GDK till stor del (men inte helt) ersatts av Cairos vektorgrafikrenderingssystem .
Utöver Kairo är GTK+ beroende av tre bibliotek – GLib , Pango och ATK – som är utvecklade vid sidan av GTK+ men som även kan användas separat. [åtta]
Utseendet på GUI skapade med GTK+ kan konfigureras av användaren och/eller programmeraren. I det här fallet konfigureras inte bara färger och teckensnitt, utan också hur olika element visas. Detta uppnås genom att använda " motorer " för visning. Genom att ansluta en annan motor kan du radikalt ändra utseendet på program. Till exempel kan vissa motorer använda en pseudo 3D- vy, andra en mer "platt" vy, etc.
GNOME- och Xfce-datorerna är baserade på GTK+ . Program som använder GTK+ kan köras i andra miljöer som KDE och LXQt . Dessutom kan GTK+ även köras på operativsystem i Microsoft Windows- och Mac OS X -familjerna .
GTK+ har också valts som huvudbibliotek för UI-byggnad för Mono (en port för Microsoft.NET för Linux). [femton]
Följande är en ofullständig (eftersom GTK är för populär) lista över projekt som använder GTK:
Skrivbordsmiljöer som använder GTK+GTK version 3.0.0 reviderade hanteringen av indataenhet, inkluderade stöd för teman skrivna med CSS-liknande syntax och lade till möjligheten att hämta information från andra öppna GTK-applikationer.
Utvecklingen av nästa version av GTK+ började i februari 2009 på GTK+ Theming Hackfest i Dublin [16] . Det första utkastet till utvecklingsplanen publicerades den 9 april 2009 [17] .
Den 10 februari 2011 släpptes GTK+ 3.0.0.
En enkel hej värld! » på GTK+ på Linux
/* Inkludera GTK+-biblioteket */ # include <gtk/gtk.h> int main ( int argc , char * argv []) { /* Deklarera widgets */ GtkWidget * etikett ; // Etikett GtkWidget * fönster ; // Huvudfönster /* Initiera GTK+ */ gtk_init ( & argc , & argv ); /* Skapa huvudfönstret */ fönster = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); /* Ställ in fönstertiteln till "Hello World!" */ gtk_window_set_title ( GTK_WINDOW ( fönster ), "Hej världen!" ); /* Skapa en etikett med texten "Hello world!" */ label = gtk_label_new ( "Hej världen!" ); /* Infoga en etikett i huvudfönstret */ gtk_container_add ( GTK_CONTAINER ( fönster ), etikett ); /* Visa fönster tillsammans med widgetar */ gtk_widget_show_all ( fönster ); /* Anslut avslutningssignalen till programutgången */ g_signal_connect ( G_OBJECT ( fönster ), "förstöra" , G_CALLBACK ( gtk_main_quit ), NULL ); /* Applikationen går in i en evig loop som väntar på användaråtgärder */ gtk_main (); returnera 0 ; }För att kompilera exemplet måste du köra kommandot:
gcc filnamn.c -o filnamn `pkg-config --cflags --libs gtk+-3.0`På Windows kan du kompilera exemplet med MinGW med följande kommando:
i686-pc-mingw32-gcc filnamn.c `PKG_CONFIG_LIBDIR=ja PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs.0gtk`+GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kärnapplikationer |
| ||||||||||||||||
Ansökningar |
| ||||||||||||||||
Komponenter | |||||||||||||||||
Plattformsarkitektur _ |
| ||||||||||||||||
gemenskap | |||||||||||||||||
människor | |||||||||||||||||
|
med GUI-element | Verktygssatser (uppsättningar)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
låg nivå |
| ||||||||||||||||||||||||||
hög nivå |
|