GTK

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 maj 2015; kontroller kräver 67 redigeringar .
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]

Historik

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

Arkitektur

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
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]

Utseende

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.

Användning

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+ Fönsterhanterare som använder GTK+ Applikationer som använder GTK+

GTK+ 3.0

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.

Programexempel

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`

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`+

Se även

Gränssnitt för andra programmeringsspråk

Anteckningar

  1. Se AUTHORS -filen i GTK+ -källarkivet .
  2. http://directory.fsf.org/wiki/gtk+
  3. https://gitlab.gnome.org/GNOME/gtk/-/tags/4.8.2
  4. gtk Open Source Project på Open Hub: Languages-sidan - 2006.
  5. Gratis programvarukatalog
  6. ↑ Översikt över GTK+ och dess bibliotek 
  7. GTK+-projektet tillkännager byte till GTK . Hämtad 10 april 2019. Arkiverad från originalet 8 februari 2019.
  8. 1 2 GTK+ 2.18.0 släppt  (eng.)  (nedlänk) . Hämtad 23 september 2009. Arkiverad från originalet 23 augusti 2011.
  9. gtk 4.0.0 . Hämtad 27 oktober 2021. Arkiverad från originalet 28 oktober 2021.
  10. gtk 4.2.0 . Hämtad 27 oktober 2021. Arkiverad från originalet 27 oktober 2021.
  11. gtk 4.4.0 . Hämtad 27 oktober 2021. Arkiverad från originalet 24 augusti 2021.
  12. gtk 4.6.0 . Hämtad 31 mars 2022. Arkiverad från originalet 23 januari 2022.
  13. GTK-handledning (nedlänk) . Hämtad 9 augusti 2011. Arkiverad från originalet 22 augusti 2011. 
  14. Go-GTK . mattn.github.io. Hämtad 20 november 2016. Arkiverad från originalet 27 november 2016.
  15. GtkSharp - Mono . Hämtad 7 maj 2010. Arkiverad från originalet 26 januari 2021.
  16. "GTK+ Theming Hackfest" meddelande . Hämtad 25 april 2009. Arkiverad från originalet 17 juli 2011.
  17. ↑ Arbetsplan för Gtk+ 3.0 . Hämtad 25 april 2009. Arkiverad från originalet 12 april 2009.

Länkar