GTK | ||
---|---|---|
gtk3-widget-factory , er en samling eksempler som viser mange av GUI- widgetene i GTK 3 | ||
Generell informasjon | ||
programtype | utviklingsbibliotek | |
Forfatter | Spencer Kimball , Peter Mattis , Josh MacDonald | |
utvikler | GNOME-prosjektet | |
Første utgivelse | 14. april 1998 | |
Tillatelse | LGPLv2.1+ | |
Faktisk tilstand | Aktiv | |
Språk | flerspråklig | |
Teknisk informasjon | ||
Planlagt inn | C | |
Støttede plattformer | Multiplattform | |
Versjoner | ||
Siste stabile versjon | 4.6.6 ( info ) (2. juli 2022 (3 måneder og 14 dager)) | |
Siste versjon i tester | 3.2220. september 2016 | |
Linker | ||
Offesiell nettside kodelager | ||
GTK (kjent frem til februar 2019 som GTK+ ) [ 1 ] [ 2 ] eller The GIMP Toolkit [ 3 ] [ 4 ] : 3 er et grafikkkomponentbibliotek på tvers av plattformer for utvikling av grafiske brukergrensesnitt (GUIer) . [ 5 ] [ 4 ] : 3 Den er lisensiert under vilkårene i GNU LGPL , [ 5 ] som tillater å lage både fri programvare og proprietær programvare . GTK er en del av GNU -prosjektet , [ 5 ] brukes av prosjekter så viktige som GIMP , Inkscape , GNOME , Xfce , blant andre.
Sammen med Qt er det en av de mest populære widget-verktøysettene for GNU/Linux- operativsystemet , med omfattende støtte for Wayland og XOrg . I tillegg kan den brukes til å utvikle grafiske applikasjoner som fungerer på andre Unix-lignende systemer eller operativsystemer som Microsoft Windows , Mac OS , blant andre.
Det ble opprinnelig utviklet av Peter Mattis, Spencer Kimball og Josh MacDonald [ 3 ] [ 4 ] : 3 for å implementere GNU Image Manipulation Program (GIMP) grafisk grensesnitt som en erstatning for Motif-verktøysettet ; på et tidspunkt ble Peter Mattis misfornøyd med Motif og begynte å skrive sitt eget GUI-verktøysett kalt GIMP-verktøysettet, og erstattet Motif for GIMP versjon 0.60. Til slutt ble GTK skrevet om til å være objektorientert og omdøpt til GTK+, først brukt i GIMP versjon 0.99. Å være den første stabile versjonen av GTK utgitt 14. april 1998. [ 6 ]
GTK er skrevet på C -språket , og er primært utviklet av GNOME-prosjektet , [ 7 ] siden dette prosjektet i 1997 valgte GTK som grunnlag for å utvikle GNOME -skrivebordsmiljøet . [ 8 ] Andre grafiske applikasjoner som ikke er direkte relatert til GNOME har også brukt GTK. I tillegg til andre grafiske miljøer for Linux som XFCE og ROX har de også valgt GTK som sitt grafiske komponentbibliotek.
GTK-utvikling håndteres fritt. Diskusjonen foregår primært på ulike offentlige e-postlister. [ 9 ] GNOME-utviklere og -brukere møtes på en årlig GNOME Users And Developers European Conference GUADEC for å diskutere den nåværende tilstanden og den fremtidige retningen for GNOME. [ 10 ] GNOME inkorporerer standarder og programmer fra freedesktop.org for bedre grensesnitt med andre skrivebord.
Dette biblioteket inneholdt noen hjelperutiner for å løse grunnleggende programmeringsoppgaver, for eksempel lagring av ulike data. Disse tar mye tid for programmereren, spesielt når det kommer til gjentatt programutvikling. Tidlige versjoner av GTK inkluderte datastrukturer for koblede lister, binære trær eller "voksende" strenger. Siden det ble skrevet om til å være objektorientert, lar GTK deg også bruke dette programmeringsparadigmet i C -språket . Disse verktøyene viste seg også nyttige for programmer uten et grafisk brukergrensesnitt og ble derfor senere flyttet til et eget bibliotek, kalt GLib- biblioteket med C-funksjoner . Det objektorienterte systemet i neste versjon er henvist til GObject -biblioteket , de systemorienterte tegnemetodene til GDK -biblioteket (GTK + Drawing Kit). Sistnevnte lar GTK kjøre identisk på tvers av plattformer i blant annet Windows, X Window System, macOS.
GTK 2-versjonen mottok nye forbedrede funksjoner for å gjengi tekst ved hjelp av Pango -biblioteket , opprettelsen av GObject , en ny temamotor, en mer fleksibel API og et nytt bibliotek ( ATK ) for å forbedre tilgjengeligheten til verktøysettet for funksjonshemmede, for for eksempel leseprogramvare, forstørrelsesverktøy og alternative inndataenheter kan adresseres. GTK 2 er ikke kompatibel med GTK 1, så eksisterende applikasjoner måtte porteres.
Fra og med versjon 2.8 bruker GTK+ det vektorbaserte Cairo-biblioteket, som bruker maskinvareakselerasjon for gjengivelse hvis mulig. GTK 2.24 er den nyeste versjonen av 2.x-serien.
Versjon 3.0 ble utgitt 10. februar 2011. [ 11 ] Mange funksjoner som ble klassifisert som avviklet har blitt fjernet og eksisterende grensesnitt er forbedret. GTK 3 er ikke bakoverkompatibel med GTK 2.x. Imidlertid kan bibliotekene til begge versjonene installeres side ved side.
GTK 3-serien inkluderer et nytt grensesnitt for å tegne widgets, som nå er fullstendig basert på Cairo , en CSS -basert temamotor som også tillater animerte tilstandsoverganger, forbedrede layoutalternativer, en ny skyvebryter-widget, en applikasjonsklasse, støtte for flere pekeenheter (flere pekere) og symbolske ikoner som kan endre farge avhengig av tilstanden. De interne strukturene er separert og skjult fra det offentlige grensesnittet, så det vil være lettere å gjøre endringer i fremtiden uten å bryte grensesnittet. Dessuten støttes flere GDK-backends samtidig innenfor samme bibliotek. [ 12 ] Til nå har det vært nødvendig med flere biblioteker.
To nye backends ble introdusert: en for Wayland-skjermserveren og en HTML5-backend kalt Broadway , som GTK-applikasjoner kan fjernstyres med i nettleseren over nettverket. [ 13 ] Multi og jevn rulling støttes, som også er tilgjengelig for Windows, [ 14 ] i tillegg støttes CSS-animasjoner og skyggesløring. Versjon 3.6.4 er den siste offisielle versjonen for 32-biters og 64-biters Windows. [ 15 ]
Det er flere endringer som å forbedre visningen av høyoppløselige skjermer. [ 16 ] Popover-presentasjon (komiske snakkebobler som kan brukes som hjelp), [ 17 ] multi-touch-bevegelser støttes. [ 18 ] [ 19 ] I tillegg støttes vindusgjengivelse via OpenGL . Det nye kontrollelementet GtkGLAreagjorde det også mulig å integrere 3D-objekter direkte i programgrensesnittene. [ 20 ] [ 21 ] Siden GTK 3.18 (base av Gnome 3.18), er biblioteket offisielt støttet av Wayland, etterfølgeren til X Windows-systemet. [ 22 ] GTK 3.20 integrerer stavekontroll med gspell og forbedrer CSS-tema. Mens GTK 3.22 kommer som en LTS-versjon og legger til støtte for Flatpak-portaler for enkle programvareinstallasjoner. [ 23 ]
1. september 2016, et innlegg på GTK-utviklingsbloggen betegnet blant annet den fremtidige GTK-nummereringsordningen. [ 24 ] GTK 3.22 Høsten 2016 vil være den siste 3.x-utgivelsen (eller så det var planlagt). [ 25 ] Etter det vil alle ressurser flyttes til GTK 4-utviklingsserien med versjonsnavn 3.90, 3.92 osv. Selv når 4.x-serien går i utvikling, bruker bemerkelsesverdige applikasjoner fortsatt GTK 2.x og har ikke blitt portert til 3.22. Når det gjelder fremtiden for eldre programvare som bruker GTK, er det ikke noe kollektivt prosjekt for å portere GTK 2.x til 3.22-programvare.
GTK 4.0 forberedes med den ustabile 3.9x-serien. I mars 2017 ble Scene Graph Kit (GSK) lagt til med versjon 3.90. Den implementerer en scenegraf og håndterer bildesyntese. I februar 2019 ble det kunngjort at GTK 4.0 vil fjerne plusstegnet ("+") fra navnedelen. [ 1 ]
En av de store innovasjonene som ble implementert i løpet av GTK 4-utviklingssyklusen (dvs. GTK 3.92, etc.) har vært å delegere funksjonalitet til hjelpeobjekter i stedet for å hardkode den i basisklassene levert av GTK.
Den 26. januar 2018 på DevConf.cz ga Matthias Clasen en oversikt over den nåværende tilstanden til GTK 4-utviklingen, inkludert en forklaring på høyt nivå av hvordan gjengivelse og input fungerte i GTK 3, hvilke endringer som ble gjort i GTK 4, og årsakene til disse endringene. Det ble også gitt eksempler på ting som er muliggjort med GTK 4. [ 26 ]
På Quartz-backend, [ 31 ] en port av X Window System, kan GTK brukes på macOS.
Tidligere brukte GTK (og GNOME, GLib, etc.) GNU- byggesystemet (kalt Autotools) som det foretrukne byggeautomatiseringssystemet.
Fra 14. august 2017 bygger GTK-hovedgrenen med Meson, og Autotools-byggsystemfilene er fjernet. [ 32 ]
GTK er basert på flere biblioteker utviklet av GTK- og GNOME-teamet:
Det er et sett med lavnivåbiblioteker , bestående av GLib Core, GObject og GIO. [ 33 ] Disse bibliotekene er alle utviklet under et enkelt Git-depot, kalt glib. Så "GLib" kan referere til "GLib core" eller hele settet med biblioteker.
GLib kjerneGLib-kjerne gir datastrukturhåndtering for C (lenkede lister, trær, hashtabeller, etc.), portabilitetsinnpakninger, hendelsesløkker, tråding, dynamisk modullasting og mange flere funksjoner.
GObjectGObject forenkler på sin side de objektorienterte programmerings- og hendelsesdrevne arkitekturparadigmene for C. Den hendelsesdrevne arkitekturen er ikke bare nyttig for grafiske brukergrensesnitt, men også for demoner som reagerer på maskinvareendringer (sett inn en USB, en skjerm, etc), nettverksprogramvare eller andre prosesser, det kan være ganske nyttig.
GIOGIO avhenger av de tidligere bibliotekene i settet, det gir et høyt nivå API for input og output, det være seg lesing fra en lokal fil, en nettverksstrøm, D-Bus kommunikasjonsprosesser og mange flere bruksområder.
Dette settet med biblioteker lar deg skrive operativsystemtjenester, biblioteker, kommandolinjeverktøy og mye mer. Derfor kan det bli mer komfortabelt og tilrådelig å skrive et C -program ved hjelp av GLib, i tillegg tilbyr det et høyt nivå API som POSIX -standarden .
Biblioteket inneholder et GLib-basert widget-verktøysett, og dette settet inneholder faktisk objektene og funksjonene for å lage det grafiske brukergrensesnittet (GUI). Administrer widgets som vinduer, knapper, menyer, etiketter, skyveknapper, faner osv.
Bibliotek som fungerer som et mellomledd mellom lavnivågrafikk og høynivågrafikk. Så det frigjør GTK fra bekymringer på lavt nivå som innsamling av inndata, dra og slipp og konvertering av pikselformat. GDK er et mellomlag som skiller GTK fra detaljene i vindussystemet.
GDK er en viktig del av GTK-portabilitet. Siden GLib allerede tilbyr funksjonalitet på tvers av plattformer på lavt nivå, er alt som trengs for å få GTK til å kjøre på andre plattformer å portere GDK til grafikklaget til det underliggende operativsystemet. Derfor er GDK-portene til Windows API og Quartz det som lar GTK-applikasjoner kjøre på henholdsvis Windows og macOS.
Bibliotek for å lage grensesnitt med svært viktige tilgjengelighetsfunksjoner for funksjonshemmede eller funksjonshemmede. Verktøy som forstørrelsesglass, skjermlesere eller alternativ dataregistrering til det klassiske tastaturet eller musen kan brukes .
Bibliotek for tekstlayout og gjengivelse, med spesiell vekt på internasjonalisering . Den er designet på en modulær måte, dette betyr at Pango kan brukes av applikasjoner av forskjellige arkitekturer eller programmeringsmetoder. Det er også kjernen for håndtering av GTK versjon 2 fonter og tekst.
Avansert gjengivelsesbibliotek med applikasjonskontroller. brukes til å gi bilder basert på vektorgrafikk. I tillegg gir det primitiver for todimensjonal tegning gjennom en rekke forskjellige backends.
Noen av programmene for å designe grafiske grensesnitt med GTK er følgende:
Det er et visuelt utviklingsverktøy for grafiske grensesnitt som bruker GTK/ GNOME . Det er programmeringsspråksuavhengig og genererer som standard ikke kildekode, men en XML -fil takket være GTKBuilder , som kan brukes i en rekke programmeringsspråk, inkludert C, C++, C#, Vala, Java, Perl, Python. Muligheten til å generere kildekode automatisk har blitt avviklet siden Glade versjon 3.
Mer teknisk beskriver klassen grensesnittet i en Extensible Markup Language-fil (XML) og laster deretter XML-beskrivelsen under kjøring og oppretter objektene automatisk. Glade Interface Designer tillater opprettelse av brukergrensesnitt på en WYSIWYG måte . Så beskrivelsen av brukergrensesnittet er uavhengig av programmeringsspråket som brukes.
Glade kan brukes ut av esken, men er også fullt integrert i Anjuta 2. Prosjektet er lisensiert under GPL-lisensen .
Stetic er en del av den GTK#-orienterte MonoDevelop, og ligner veldig på Glade Interface Designer, men er integrert i MonoDevelop med dra-og-slipp-funksjonalitet. Den har blitt kritisert for å være vanskeligere å jobbe med enn Qt Designer og Microsoft Visual Studio Windows Forms Editor når programmereren ennå ikke har et konkret design i tankene.
MonoDevelop kan kjøre på ulike Linux-distribusjoner og på Mac. Siden versjon 2.2 har MonoDevelop allerede full støtte for GNU/Linux, Windows og Mac. I tillegg inkluderer den en kompilator som støtter C # 1.0, C # 2.0, C # 3.0, C# 4.0, C# 5.0 og C# 6.0.
GIMP Image Editor 2.10.8.
Inkscape 1.0 vektorgrafikkredigerer .
Pitivi videoredigerer .
Klient for BitTorrent - overføringsnettverk 2.92.
Noen applikasjoner som bruker GTK til å utvikle brukergrensesnittene inkluderer:
GNOME Desktop 3.36.3
elementær OS Hera
XFCE 4.14 Desktop
Cinnamon Desktop 4.4.8
MATE Desktop 1.20
Skrivebordsmiljøer er ikke nødvendig for å kjøre GTK-programmer. Hvis bibliotekene som kreves av programmet er installert, kan et GTK-program kjøres på toppen av andre X11- baserte miljøer som KDE eller et hvilket som helst annet miljø, inkludert Mac OS X , hvis X11.app er installert. GTK kan også kjøre på Microsoft Windows, det brukes av noen populære tverrplattformapplikasjoner som Pidgin og GIMP. wxWidgets, et grafisk verktøysett på tvers av plattformer bruker GTK på Unix-lignende systemer . [ 34 ] Noen av de mer uvanlige portene inkluderer directfb og ncurses .
Siden GTK er et rent C-bibliotek, kan det enkelt kobles til mange andre programmeringsspråk. Med objektorienterte programmeringsspråk brukes ikke GObjects; GTK-objekter kan generelt brukes der som opprinnelige programmeringsspråkobjekter. Vala-programmeringsspråket bruker GObject direkte som et objektsystem og krever derfor ikke et kjøretidsbibliotek for å plugge inn språket.
Det er et stort utvalg programmeringsspråk som GTK kan brukes med, [ 35 ] selv om ikke alle er tilgjengelige i sin nyeste versjon. Blant de mest brukte er følgende:
Språk | Navn | Brukerstøtte | Tillatelse | eksempler | |||
---|---|---|---|---|---|---|---|
V2 | V3 | V4 | Offisielt | ||||
C | GTK | Ja | Ja | Ja | Ja | LGPL-2.1 | Filer , GIMP |
C++ | gtkmm | Ja | Ja | Ja | Ja | LGPL-2.1 | inkscape |
C# | gtk skarp | Delvis | Ja | Ukjent | Ja | LGPL-2.1 | MonoDevelop , Maling |
D | gtkd | Ja | Ja | Ja | Nei | LGPL-3 | |
geni | geni | Ja | Ja | Ja | Ja | LGPL-2.1 | |
Gå | gotk3 | Nei | Ja | Ukjent | Nei | GPL-3 | |
Java | java-gnome | Ja | Ja | Ukjent | Ja | GPL-2 | |
JavaScript | gjs | Ja | Ja | Ja | Ja | MIT | |
Frø | Ja | Ja | Ja | Ja | LGPL-2.1 | ||
Julia | Gtk.jl | Ja | Ja | Ukjent | Nei | MIT | |
Perle | gtk2-perl | Ja | Ja | Ja | Ja | LGPL-2.1 | |
python | PyGObject | Ja | Ja | Ja | Ja | LGPL-2.1 | Pitivi |
rust | gtk-rs | Nei | Ja | Ja | Ja | MIT | Fractal, Shortwave, Pika Backup |
Vala | Vala | Ja | Ja | Ja | Ja | LGPL-2.1 | Bokser , Shotwell |
Den klassiske måten å programmere med GTK på er først å definere egenskapene til de grafiske elementene som brukes, deretter gruppere dem og binde dem til spesifikke hendelseshåndteringsrutiner (en mulig hendelse vil for eksempel være et knappeklikk). Det finnes imidlertid også grafiske designverktøy for GTK-overflater som Glade eller Stetic i MonoDevelop , som kan spare deg for de to første trinnene, utvide GTK med prototyping-funksjoner og gjøre det mulig å gjøre overflateendringer i et program uten å måtte gjøre endringer til kildekoden til programvaren.
Et typisk Hello World-program vist på bildet kan se slik ut:
// Inkluder gtk #include <gtk/gtk.h> static void on_activate ( GtkApplication * app ) { // Opprett et nytt vindu GtkWidget * window = gtk_application_window_new ( app ); // Opprett en ny knapp GtkWidget * button = gtk_button_new_with_label ( "Hei Wikipedia!" ); // Når knappen klikkes, ødelegge vinduet som ble sendt som argument g_signal_connect_swapped ( button , "clicked" , G_CALLBACK ( gtk_widget_destroy ), window ); gtk_container_add ( GTK_CONTAINER ( vindu ), knapp ); gtk_widget_show_all ( vindu ); } int main ( int argc , char * argv []) { // Opprett en ny applikasjon GtkApplication * app = gtk_application_new ( "com.example.GtkApplication" , G_APPLICATION_FLAGS_NONE ); g_signal_connect ( app , "aktiver" , G_CALLBACK ( on_activate ), NULL ); return g_application_run ( G_APPLICATION ( app ), argc , argv ); }For å kompilere denne koden er det nødvendig med noen avhengigheter avhengig av systemet du har, i tilfelle du bruker Debian eller derivater sudo apt-get install libgtk-3-develler i tilfelle du bruker Fedora sudo dnf install gtk3-devel clutter-devel webkit2gtk3-devel libgda-devel gobject-introspection-devel. [ 36 ] For å kompilere koden, må du navigere til filbanen og skrive inn følgende i en terminal
gcc examplegtk.c -o examplegtk `pkg-config --cflags --libs gtk+-3.0`For å kjøre filen, skriv
./examplegtkFor å åpne denne koden er det nødvendig med noen avhengigheter avhengig av systemet du har, [ 37 ] i tilfelle du bruker Debian eller derivater sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0eller i tilfelle du bruker Fedora sudo dnf install python3-gobject gtk3.
For å kjøre filen må du finne filbanen og deretter kjøre den ved å skrive
python3 hello.pyGTKs utseende er stort sett brukerkonfigurerbart, med et stort antall temaer å velge mellom. Disse temaene kan lastes ned fra forskjellige nettsteder som GNOME Look . Følgende er de mest populære:
Det er det nye GTK-standardtemaet siden midten av 2014, og er temaet som det anbefales å jobbe med å utvikle i grafiske grensesnitt. Dette ble uttrykt i et åpent brev fra utviklerne av GNOME-applikasjoner, der de inviterte til å bruke standardtemaet (dvs. Adwaita), siden de forsikret at bruk av andre temaer kunne gi forskjeller i oppfatningen til sluttbrukeren, i det samme programmet. [ 38 ]
Ved å si at ved å endre GTK-stilarkene kan applikasjonene virke skadet eller ubrukelige, og ikonene kan representere konsepter som er forskjellige fra det som programmereren hadde tiltenkt. De sørget også for at fangstene som ble funnet i programvarebutikker kunne villede brukeren av utseendet til applikasjonen, og også at det kunne generere konflikter i komprimeringen av dokumentasjonen for sluttbrukeren.
Dette forslaget ble akseptert av forskjellige distribusjoner, som direkte adopterte Adwaita, eller baserte temaene deres på det, som tilfellet er med Ubuntu med Yaru-temaet. [ 39 ]
Det er det offisielle Ubuntu-temaet, det har forskjellige toner som brukeren kan velge. Temaet er basert på Adwaita.
Den vanligste kritikken mot GTK er mangelen på bakoverkompatibilitet i store oppdateringer, spesielt i applikasjonsprogrammeringsgrensesnittet (API) [ 40 ] og temaer. [ 41 ]
Benjamin Otte forklarte at kompatibilitetsbruddene mellom mindre utgivelser i løpet av GTK 3.x-utviklingssyklusen skyldtes sterkt press for å innovere, for eksempel å tilby funksjoner som moderne brukere forventer og støtte Wayland -skjermserverprotokollen som ble mer og mer innflytelsesrik. Med utgivelsen av GTK 4 vil presset av behovet for innovasjon ha blitt utløst og balansen mellom stabilitet og innovasjon vil skifte mot stabilitet. [ 42 ] Tilsvarende er nylige endringer i temaet spesifikt rettet mot å forbedre og stabilisere den delen av API-en, noe som betyr at noen investeringer nå bør betale seg senere.
Utgivelsessammendrag | |||||||
---|---|---|---|---|---|---|---|
Lansering | første versjon | viktige forbedringer | Siste mindre versjon | ||||
GTK+ 1 | |||||||
1.0 | 13. april 1998 [ 49 ] | Første stabile versjon | 1.0.6 | ||||
1.2 | 25. februar 1999 [ 50 ] | Nye widgeter :
|
1.2.10 | ||||
Legende:Gammel versjonGammel versjon, med teknisk støtteSiste versjonSiste forrige versjonfremtidig utgivelse | |||||||
GTK+2 | |||||||
2.0 | 11. mars 2002 [ 51 ] | GOobjekt
Generell støtte for UTF-8 |
2.0.9 | ||||
2.2 | 22. desember 2002 [ 52 ] | Støtte for flere overskrifter. | 2.2.4 | ||||
2.4 | 16. mars 2004 [ 53 ] | Nye widgeter :
|
2.4.14 | ||||
2.6 | 16. desember 2004 [ 54 ] | Nye widgeter :
Den siste som støtter Windows 98 / Me |
2.6.10 | ||||
2.8 | 13. august 2005 [ 55 ] | De fleste widgetene er gjengitt av Kairo | 2.8.20 | ||||
2.10 | 3. juli 2006 [ 56 ] | Nye widgeter :
Utskriftsstøtte: GtkPrintOperation |
2.10.14 | ||||
2.12 | 14. september 2007 [ 57 ] | GtkBuilder | 2.12.12 | ||||
2.14 | 4. september 2008 [ 58 ] | JPEG 2000 opplastingsstøtte | 2.14.7 | ||||
2.16 | 13. mars 2009 [ 59 ] | Ny widget: GtkOrientable
Caps lock-advarsel ved inntasting av passord Forbedringer av GtkScale, GtkStatusIcon, GtkFileChooser |
2.16.6 | ||||
2.18 | 23. september 2009 [ 60 ] | Ny widget: GtkInfoBar
Forbedret filvelger, utskrift For å fjerne mye av den nødvendige IPC-en mellom X11-applikasjonen og X11-serveren, er GDK skrevet om (hovedsakelig av Alexander Larsson) til å bruke "klientsidevinduer", dvs. GdkWindow, som hver widget må ha, tilhører nå klienten |
2.18.9 | ||||
2.20 | 23. mars 2010 [ 61 ] | Nye widgeter :
Forbedret filvelger, tastaturhåndtering, GDK Introspeksjonsdata er nå inkludert i GTK |
2.20.1 | ||||
2.22 | 23. september 2010 [ 62 ] | GdkPixbuf flyttet til en egen modul
De fleste av GDK-tegningene er basert på Kairo Mye interne data er nå private og kan forsegles som forberedelse til GTK 3 |
2.22.1 | ||||
2.24 | 30. januar 2011 [ 63 ] | Ny widget: GtkComboBoxText
CUPS printbackend kan sende utskriftsjobber som PDF GtkBuilder har fått støtte for tekstetiketter og menyverktøyknapper, og mange rettelser for introspeksjonskommentarer er lagt til |
2.24.32 (2018-01-08) | ||||
Legende:Gammel versjonGammel versjon, med teknisk støtteSiste versjonSiste forrige versjonfremtidig utgivelse | |||||||
GTK 3 | |||||||
3.0 | 10. februar 2011 [ 11 ] | Utvikling og design av GTK 3-versjonen av verktøysettet startet i februar 2009 under GTK Theming Hackfest holdt i Dublin [ 64 ]
Stort sett fullført Project Ridley
All gjengivelse gjøres med Kairo GDK ble X11 agnostiker XInput2, API-temaet er basert på Cascading Style Sheet (CSS), som forverrer ytelsen som kan oppnås for 60 Hz bilder per sekund |
3.0.12 | ||||
3.2 | 25. september 2011 [ 67 ] | Nye widgeter :
Ny dialogboks for skriftvelger Nye eksperimentelle backends: |
3.2.4 | ||||
3.4 | 26. mars 2012 [ 68 ] | Menystøtte i GtkApplication
En ny fargevelger Lagt til støtte for berøringsenheter Lagt til støtte for jevn rulling GtkScrolledWindow vil utføre kinetisk rulling med berøringsenheter Forbedret kompatibilitet med macOS Dette er den første versjonen av GTK 3 som fungerer bra på Windows Wayland-backend er oppdatert til gjeldende versjon av Wayland Dreiknapper har fått et nytt utseende Tilgjengelighet: støtte tilgjengelig med trevisning skrives om Mer full CSS-temastøtte |
3.4.4 | ||||
3.6 | 24. september 2012 [ 69 ] | Nye widgeter :
Vertikale vippeknapper CSS-animasjoner, uskarpe skygger Støtte for falming og overganger i temaer. |
3.6.5 | ||||
3.8 | 25. mars 2013 [ 70 ] | Wayland 1.0 stabil støtte
Broadwayd serverstøtte Forbedret tematikk Bedre geometristyring. Berøringsforbedringer Window manager- støtte for rammesynkroniseringsprotokoll GdkFrameClock lagt til [ 71 ] |
3.8.9 | ||||
3.10 | 23. september 2013 [ 72 ] | Nye widgeter :
Støtte for Wayland 1.2
Ytterligere:
Pensjonert:
Uttrekkbare menyelementer, pluss mange GTK-innstillinger |
3.10.9 | ||||
3.12 | 25. mars 2014 [ 73 ] | Dekorasjoner på klientsiden [ 74 ]
Støtte for Wayland 1.5 Ny widget: GtkPopover (et alternativ til menyer og dialoger) |
3.12.2 | ||||
3.14 | 22. september 2014 [ 75 ] | Introduserte GtkInspector (en kopi av gtkparasite) [ 76 ] [ 77 ]
Forbedret støtte for bevegelser / multi-touch fusion [ 78 ] [ 79 ]Utdatert: [ 80 ]
De fleste widgets konverteres til å bruke bevegelser internt Wayland støtter klassisk GNOME Shell-modus [ 81 ] |
3.14.15 | ||||
3.16 | 22. mars 2015 [ 82 ] | GDK støtter gjengivelse av vinduer ved hjelp av OpenGL for X11 og Wayland ved bruk av libepoxy
Nye widgeter :
Revidert rulling (rullefelt skjult som standard) [ 83 ] |
3.16.7 | ||||
3.18 | 23. september 2015 [ 85 ] | Legg til CSS-nodeinfrastruktur
Mer filvelger-designoppdatering og bedre filvelgersøk Fjernet Windows XP-støtte Støttemodell for liste og flytskjema Kinetisk rulling av pekeplaten Berøringsflatebevegelser (Wayland) gtk-builder-tool-verktøyet Avslutt kun vinduer |
3.18.9 | ||||
3.20 | 21. mars 2016 [ 86 ] | Større integrasjon av CSS-noder [ 87 ]
Flytt dra og slipp til GDK Ny widget: GtkShortcutsWindow (viser hurtigtaster og bevegelser til et program) |
3.20.10 | ||||
3.22 | 21. september 2016 [ 88 ] | Siste versjon 3.x [ 24 ]
WWayland nettbrettstøtte slått sammen, [ 89 ] støtte for grafikknettbrett anses som komplett [ 90 ] GTK 3.22 vil være like stabil (og derfor "kjedelig") som GTK 2 [ 91 ] [ 92 ] [ 93 ] |
i 3 år 3.22.29 | ||||
3.24 | 3. september 2018 [ 25 ] | 3.22 skulle være den siste versjonen av GTK 3-serien
Avhengighetstreff: krever:
Nye funksjoner for fontvelger:
Nye Emoji-funksjoner:
Andre nye APIer: gdk_window_move_to_rect Wayland: bruk delt anonymt minne på FreeBSD GTK 4 reservehendelsesbehandlere:
Avviklet noen API-er som er borte i GTK 4:
|
3.23.0 3.23.1 3.23.2 3.23.3 3.24.0 … 3.24.5 3.24.14 | ||||
Legende:Gammel versjonGammel versjon, med teknisk støtteSiste versjonSiste forrige versjonfremtidig utgivelse | |||||||
Utvikling av GTK 4-serien | |||||||
3,90 | 31. mars 2017 [ 94 ] | GTK Scene Graph Kit (GSK) slått sammen [ 95 ]
Fjern eventuelle API-er som er merket som avviklet tung utvikling En ny Vulkan -renderer forsterker den gamle Kairo -rendereren [ 96 ] |
3.89.1 | ||||
3,92 | 18. oktober 2018 [ 97 ] [ 98 ] | Siden GNOME 3.26 allerede ble utgitt 13. september 2017, [ 99 ] var den ikke basert på GTK 3.92.
GNU autotools ble erstattet av Meson. |
3.91.0 | ||||
3,94 | 26. juni 2018 [ 100 ] | 3,93
GdkWindow omdøpt til GdkSurface Ny abstraksjon for tegnebart innhold: GdkPaintable Det er støtte for å vise media med:
|
3.93 3.94.0 | ||||
3,96 | 7. mai 2019 [ 101 ] | Kommandoen gtk4-builder-tool simplify har fått et --3to4- alternativ for å konvertere GTK3 ui-filer til GTK4; riktignok med AMTK-menyer, verktøylinjer eller andre objekter som GtkShortcutsWindow opprettes programmatisk (ikke med en *.ui-fil), men med praktiske APIer. [ 102 ]
GtkWidget kan nå bruke en GtkLayoutManager for dimensjonering
Fokushåndtering har blitt omskrevet og generering av fokusendringsbegivenheter har blitt forenet med krysshendelser Arrangementer er forenklet og brukes kun til input:
|
3.96.0 | ||||
3,98 | 10. februar 2020 [ 103 ] |
|
3.98.5 | ||||
3.99.0 | 31. juli 2020 [ 105 ] |
|
3.99.0 | ||||
4.0 | 16. desember 2020 [ 106 ] | Fjerning av alle APIer merket som utdatert, dvs. i det minste alt i den utdaterte katalogen | |||||
Legende:Gammel versjonGammel versjon, med teknisk støtteSiste versjonSiste forrige versjonfremtidig utgivelse |