GTK

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 19. maj 2015; checks kræver 67 redigeringer .
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]

Historie

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

Arkitektur

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

Udseende

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.

Brug

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+ Vinduesadministratorer, der bruger GTK+ Applikationer, der bruger GTK+

GTK+ 3.0

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.

Programeksempel

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`

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+

Se også

Grænseflader til andre programmeringssprog

Noter

  1. Se AUTHORS -filen i GTK+ -kildearkivet .
  2. http://directory.fsf.org/wiki/gtk+
  3. https://gitlab.gnome.org/GNOME/gtk/-/tags/4.8.2
  4. gtk Open Source-projektet på Open Hub: Languages-side - 2006.
  5. Gratis softwarekatalog
  6. ↑ Oversigt over GTK+ og dets biblioteker 
  7. GTK+-projekt annoncerer omdøbning til GTK . Hentet 10. april 2019. Arkiveret fra originalen 8. februar 2019.
  8. 1 2 GTK+ 2.18.0 frigivet  (eng.)  (downlink) . Hentet 23. september 2009. Arkiveret fra originalen 23. august 2011.
  9. gtk 4.0.0 . Hentet 27. oktober 2021. Arkiveret fra originalen 28. oktober 2021.
  10. gtk 4.2.0 . Hentet 27. oktober 2021. Arkiveret fra originalen 27. oktober 2021.
  11. gtk 4.4.0 . Hentet 27. oktober 2021. Arkiveret fra originalen 24. august 2021.
  12. gtk 4.6.0 . Hentet 31. marts 2022. Arkiveret fra originalen 23. januar 2022.
  13. GTK tutorial (downlink) . Hentet 9. august 2011. Arkiveret fra originalen 22. august 2011. 
  14. Go-GTK . mattn.github.io. Hentet 20. november 2016. Arkiveret fra originalen 27. november 2016.
  15. GtkSharp - Mono . Hentet 7. maj 2010. Arkiveret fra originalen 26. januar 2021.
  16. "GTK+ Theming Hackfest" meddelelse . Hentet 25. april 2009. Arkiveret fra originalen 17. juli 2011.
  17. Gtk+ 3.0 arbejdsplan . Hentet 25. april 2009. Arkiveret fra originalen 12. april 2009.

Links