GTK | |
---|---|
Type | applikationsramme [d] og widgetbibliotek [d] |
Forfatter |
GTK+ Team, originale forfattere: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Udvikler | GNOME Foundation og GNU-projektet [2] |
Skrevet i | C [4] |
Operativ system | GNU/Linux , macOS , Unix-lignende styresystem , Microsoft Windows og Linux |
Interface sprog | flere sprog [d] |
Første udgave | 14. april 1998 |
Hardware platform | på tværs af platforme |
nyeste version |
|
Stat | aktiv |
Licens | LGPL-2.1 [d] [5][6]ogGNU LGPL |
Internet side | gtk.org _ |
Mediefiler på Wikimedia Commons |
GTK (tidligere GTK+ [7] ; forkortelse for GIMP ToolKit ) er et grænsefladebibliotek på tværs af platforme (ramme) med en brugervenlig API , sammen med Qt , er et af de to mest populære biblioteker for Wayland og X Window System i dag .
Oprindeligt en del af GIMP -grafikeditoren , har det udviklet sig til et separat projekt og vundet bemærkelsesværdig popularitet. GTK er gratis software distribueret under betingelserne i GNU LGPL , som giver dig mulighed for at oprette både gratis og proprietær software ved hjælp af biblioteket. GTK er det officielle GUI- skabelsesbibliotek for GNU-projektet . [otte]
Versionsnummer | Udgivelsesdato for version | Væsentlige ændringer | Sidste mindre version |
---|---|---|---|
1.0 | 14. april 1998 | Første stabile udgivelse | 1.0.6 |
1.2 | 27. februar 1999 | Nye widgets (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2.0 | 11. marts 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22. december 2002 | Multihead støtte | 2.2.4 |
2.4 | 16. marts 2004 | Nye widgets (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16. december 2004 | Nye widgets (GtkIconView, GtkAboutDialog, GtkCellView); dette er den sidste udgivelse, der understøtter Windows 98 / ME |
2.6.10 |
2.8 | 13. august 2005 | Kairo integration | 2.8.20 |
2.10 | 3. juli 2006 | Nye widgets (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) og udskrivningssupport (GtkPrintOperation) |
2.10.14 |
2.12 | 14. september 2007 | GtkBuilder | 2.12.12 |
2.14 | 4. september 2008 | JPEG 2000 download support | 2.14.7 |
2.16 | 13. marts 2009 | Ny GtkOrientable, en advarsel vises i adgangskodeindtastningsfeltet, når Caps Lock er aktiveret , forbedringer i GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23. september 2009 | Ny GtkInfoBar. Forbedringer i filvalgsdialog, udskrivning. GDK er blevet omskrevet til at bruge 'client-side windows' |
2.18.9 |
2,20 | 23. marts 2010 | Ny GtkSpinner og GtkToolPalette, GtkOffscreenWindow. Forbedringer i filvalgsdialog, tastaturhåndtering, GDK. GObject introspektionsdata inkluderet |
2.20.1 |
2.22 | 23. september 2010 | gdk-pixbuf opdelt i et separat modul, de fleste af tegnefunktionerne udføres nu af Cairo |
2.22.1 |
2.24 | 30. januar 2011 | Ny forenklet ComboBox-widget (GtkComboBoxText), CUPS -printbackend kan sende job til PDF, GtkBuilder fik understøttelse af tekst-tags, masser af rettelser til introspektionssymboler |
2.24.0 |
3.0 | 10. februar 2011 | Rendering er nu fuldstændig ansvarlig for Cairo , en abstraktion fra X11, ved hjælp af XInput2, understøttelse af CSS -lignende skins |
3.0.12 |
3.2 | 25. september 2011 | Nye eksperimentelle Wayland- og HTML5 -backends , ny dialogboks til valg af skrifttype, nye widgets: GtkLockButton og GtkOverlay |
3.2.4 |
3.4 | 26. marts 2012 | Understøttelse af berøringsskærme, inklusive multi-touch, understøttelse af jævn rulning, forbedret understøttelse af Windows, MacOS X, udvidet API til visuelle temaer |
3.4.4 |
3.6 | 24. september 2012 | Nye widgets: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Nummerindtastningsknapper GtkSpinButton kan nu placeres lodret. Understøttelse af CSS-animationer, slørede skygger. |
3.6.5 |
3.8 | 13. maj 2013 | Wayland 1.0-understøttelse, Broadway GDK-backend-redesign, forbedret temaer og geometristyring. Tilføjet understøttelse af pop-ups, omfattende arbejde er blevet udført for at forbedre ydeevnen |
3.8.9 |
3.10 | 23. september 2013 | Nye widgets (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Wayland 1.2-understøttelse (maksimering, animerede markører, flere skærme, indstillinger, brugerdefinerede overflader og rammesynkronisering) |
3.10.9 |
3.12 | 25. marts 2014 | Wayland 1.5 support; Nye widgets (Popover, GtkActionBar, GtkFlowBox). Forbedret global menuunderstøttelse i OS X. | 3.12.2 |
3.14 | 22. september 2014 | Wayland 1.6-understøttelse; Integration af den interaktive debugger GtkInspector. Understøttelse af GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon, GtkThemingEngine-widgets er blevet afbrudt. | 3.14.6 |
3.16 | 22. marts 2015 | GDK indbygget understøttelse af tegning af vinduer via OpenGL til X11 og Wayland via libepoxy ved hjælp af GLX eller EGL, nye widgets (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), Eksperimentel Mir -understøttelse . | 3.16.0 |
3.18 | 22. november 2015 | Opdateret filvalgsdesign, Fjernet understøttelse af Windows XP | 3.18.5 |
3,20 | 21. marts 2016 | Implementeret CSS-nodesystem, ny GtkShortcutsWindow- widget | 3.20.3 (utilgængeligt link) |
3.22 | 20. september 2016 | Tilføjet GtkPadController API til håndtering af bevægelser fra tablets, ny GtkShortcutLabel-widget, integreret Flatpak-teknologi | 3.22.0 |
4.0 | 16. december 2020 [9] | Udgivelse af GTK 4.0 grafikværktøjssættet | 4.0.3 |
4.2 | 30. marts 2021 [10] | Udgivelse af GTK 4.2 grafikværktøjssættet | 4.2.1 |
4.4 | 23. august 2021 [11] | Udgivelse af GTK 4.4 grafikværktøjssættet | 4.4.0 |
4.6 | 30. december 2021 [12] | GTK 4.6 grafikværktøjssæt tilgængeligt | 4.6.2 |
GTK+ er skrevet i C , men er ikke desto mindre objektorienteret [13] . En af grundene til at vælge C som sprog var ønsket om nemt at bygge grænseflader til andre programmeringssprog . Som et resultat kan GTK+ skrives på følgende programmeringssprog:
Sprog | Navn | Support |
---|---|---|
Ada | GtkAda | Delvis support op til 2.18 |
C | GTK+ | Indbygget |
C++ | gtkmm | Ja |
C # og andre .NET programmeringssprog |
gtk# | Delvis støtte indtil 2.20 |
D | gtkD | GTK2-understøttelse var gtkD-1.7.4, efter - GTK3 (plus Cairo , Gda , Gl , GStreamer ) |
Erlang | gtkNode | Delvis support op til 2.16 |
Fortran | gtk-fortran | Delvis understøttelse op til 2.24 / 3.0 |
gå | gå-gtk | Delvis støtte (33 %) [14] |
GOB | sprog skrevet til GObject-systemet . | Ja |
Genie | sprog skrevet til GObject-systemet . | Ja |
Haskell | gtk2hs | Ja |
FreeBASIC | GTK+tobak2 | Delvis understøttelse før 2.22: Også understøttet af GTK3 |
Gratis Pascal | (header) integreret i kernedistributionen | GTK 2.16 med delvis senere understøttelse |
Java | java-gnome | Delvis support op til 2.20 (ikke tilgængelig på Windows) |
JavaScript | frø / GJS | Ja |
Lua | lgob | Understøtter alle versioner fra 2.16 |
Lisp | cl-cffi-gtk | |
Lua | LuaGtk | Delvis support op til 2.16 |
Node.js | node-gtk | Ja |
OKaml | LabelGTK | Delvis support op til 2.16 |
Perl | perl-Gtk3 | Ja |
PHP | PHP-GTK | Delvis støtte indtil 2.20 |
PureBasic | gtk2 | Ja |
Python | GObject - introspektion via PyGI , tidligere PyGTK | Ja |
R | RGtk2 | Delvis support op til 2.12 |
rubin | rubin-gtk2 | Ja |
Småsnak | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | Ja |
Vala | sprog skrevet til GObject-systemet . | Ja |
Faktisk består GTK+ af to komponenter: GTK og GDK . Den første indeholder et sæt brugergrænsefladeelementer eller " widgets " (såsom en knap , en liste, et tekstindtastningsfelt osv. ) til forskellige opgaver. GDK er ansvarlig for skærmoutput og kan bruge funktionerne X Window System , Wayland , Linux Framebuffer , WinAPI eller Mac OS X til at gøre dette . Siden version 2.8 er GDK stort set (men ikke fuldstændigt) blevet erstattet af Cairo vektorgrafikgengivelsessystemet .
Udover Cairo er GTK+ afhængig af tre biblioteker - GLib , Pango og ATK - som er udviklet sammen med GTK+, men som også kan bruges separat. [otte]
Udseendet af GUI'er oprettet ved hjælp af GTK+ kan konfigureres af brugeren og/eller programmøren. I dette tilfælde er ikke kun farver og skrifttyper konfigureret, men også måden forskellige elementer vises på. Dette opnås ved brug af " motorer " til visning. Ved at tilslutte en anden motor kan du radikalt ændre programmernes udseende. For eksempel kan nogle motorer bruge en pseudo 3D - visning, andre en mere "flad" visning osv.
GNOME og Xfce desktops er baseret på GTK+ . Programmer, der bruger GTK+, kan køre i andre miljøer såsom KDE og LXQt . Derudover kan GTK+ også køre på operativsystemer i Microsoft Windows- og Mac OS X -familierne .
GTK+ er også blevet valgt som det primære UI-bygningsbibliotek for Mono (en port til Microsoft.NET til Linux). [femten]
Følgende er en ufuldstændig (fordi GTK er for populær) liste over projekter, der bruger GTK:
Desktop-miljøer, der bruger GTK+GTK version 3.0.0 reviderede inputenhedshåndtering, inkluderede understøttelse af temaer skrevet med CSS-lignende syntaks og tilføjede muligheden for at få information fra andre åbne GTK-applikationer.
Udviklingen af den næste version af GTK+ begyndte i februar 2009 på GTK+ Theming Hackfest i Dublin [16] . Det første udkast til udviklingsplanen blev offentliggjort den 9. april 2009 [17] .
Den 10. februar 2011 blev GTK+ 3.0.0 udgivet.
En simpel hej verden! » på GTK+ på Linux
/* Inkluder GTK+ biblioteket */ # include <gtk/gtk.h> int main ( int argc , char * argv []) { /* Erklære widgets */ GtkWidget * label ; // Etiket GtkWidget * vindue ; // Hovedvindue /* Initialiser GTK+ */ gtk_init ( & argc , & argv ); /* Opret hovedvinduet */ vindue = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); /* Indstil vinduets titel til "Hello World!" */ gtk_window_set_title ( GTK_WINDOW ( vindue ), "Hej verden!" ); /* Opret en etiket med teksten "Hello world!" */ label = gtk_label_new ( "Hej verden!" ); /* Indsæt en etiket i hovedvinduet */ gtk_container_add ( GTK_CONTAINER ( vindue ), etiket ); /* Vis vindue sammen med widgets */ gtk_widget_show_all ( vindue ); /* Tilslut afslutningssignalet til programafslutningen */ g_signal_connect ( G_OBJECT ( vindue ), "destroy" , G_CALLBACK ( gtk_main_quit ), NULL ); /* Applikationen går ind i en evig løkke og venter på brugerhandlinger */ gtk_main (); returnere 0 ; }For at kompilere eksemplet skal du køre kommandoen:
gcc filnavn.c -o filnavn `pkg-config --cflags --libs gtk+-3.0`På Windows kan du kompilere eksemplet ved hjælp af MinGW med følgende kommando:
i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR=ja PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs.0gtk+GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kerneapplikationer |
| ||||||||||||||||
Ansøgninger |
| ||||||||||||||||
Komponenter | |||||||||||||||||
Platform arkitektur |
| ||||||||||||||||
Fællesskab | |||||||||||||||||
Mennesker | |||||||||||||||||
|
af GUI-elementer | Værktøjssæt (sæt)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lavt niveau |
| ||||||||||||||||||||||||||
højt niveau |
|