GTK | |
---|---|
Tyyppi | sovelluskehys [d] ja widget-kirjasto [d] |
Tekijä |
The GTK+ Team, alkuperäiset kirjoittajat: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Kehittäjä | GNOME Foundation ja GNU-projekti [2] |
Sisään kirjoitettu | C [4] |
Käyttöjärjestelmä | GNU/Linux , macOS , Unix-tyyppinen käyttöjärjestelmä , Microsoft Windows ja Linux |
Käyttöliittymäkielet | useita kieliä [d] |
Ensimmäinen painos | 14. huhtikuuta 1998 |
Laitteistoalusta | cross-platform |
uusin versio |
|
Osavaltio | aktiivinen |
Lisenssi | LGPL-2.1 [d] [5][6]jaGNU LGPL |
Verkkosivusto | gtk.org_ _ |
Mediatiedostot Wikimedia Commonsissa |
GTK (aiemmin GTK+ [7] ; lyhenne sanoista GIMP ToolKit ) on monialustainen käyttöliittymäkirjasto (kehys), jossa on helppokäyttöinen API , yhdessä Qt :n kanssa, yksi Waylandin ja X-ikkunan kahdesta suosituimmasta kirjastosta. Järjestelmä tänään .
Alun perin osa GIMP -grafiikkaeditoria , se on kehittynyt erilliseksi projektiksi ja saavuttanut huomattavan suosion. GTK on ilmainen ohjelmisto , jota jaetaan GNU LGPL :n ehtojen alaisena ja jonka avulla voit luoda sekä ilmaisia että omaa ohjelmistoa käyttämällä kirjastoa. GTK on GNU-projektin virallinen GUI -luontikirjasto . [kahdeksan]
Versionumero | Version julkaisupäivä | Merkittäviä muutoksia | Viimeisin pieni versio |
---|---|---|---|
1.0 | 14. huhtikuuta 1998 | Ensimmäinen vakaa julkaisu | 1.0.6 |
1.2 | 27. helmikuuta 1999 | Uudet widgetit (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2.0 | 11. maaliskuuta 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22. joulukuuta 2002 | Monipää tuki | 2.2.4 |
2.4 | 16. maaliskuuta 2004 | Uudet widgetit (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16. joulukuuta 2004 | Uudet widgetit (GtkIconView, GtkAboutDialog, GtkCellView); tämä on viimeinen versio, joka tukee Windows 98 / ME :tä |
2.6.10 |
2.8 | 13. elokuuta 2005 | Kairon integraatio | 2.8.20 |
2.10 | 3. heinäkuuta 2006 | Uudet widgetit (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) ja tulostustuki (GtkPrintOperation) |
2.10.14 |
2.12 | 14. syyskuuta 2007 | GtkBuilder | 2.12.12 |
2.14 | 4. syyskuuta 2008 | JPEG 2000 lataustuki | 2.14.7 |
2.16 | 13. maaliskuuta 2009 | Uusi GtkOrientable, varoitus näytetään salasanan syöttökentässä, kun Caps Lock on käytössä , parannuksia GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23. syyskuuta 2009 | Uusi GtkInfoBar. Parannuksia tiedostojen valintaikkunaan, tulostukseen. GDK on kirjoitettu uudelleen käyttämään "asiakaspuolen ikkunoita" |
2.18.9 |
2.20 | 23. maaliskuuta 2010 | Uusi GtkSpinner ja GtkToolPalette, GtkOffscreenWindow. Parannuksia tiedostojen valintaikkunassa, näppäimistön käsittelyssä, GDK:ssa. Mukana GObjectin itsetutkiskelutiedot |
2.20.1 |
2.22 | 23. syyskuuta 2010 | gdk-pixbuf erotettu erilliseksi moduuliksi, useimmat piirtotoiminnot suorittaa nyt Kairo |
2.22.1 |
2.24 | 30. tammikuuta 2011 | Uusi yksinkertaistettu ComboBox- widget (GtkComboBoxText), CUPS -tulostuksen taustaohjelma voi lähettää töitä PDF-muotoon, GtkBuilder sai tuen tekstitageille, paljon korjauksia itsetutkisymboleihin |
2.24.0 |
3.0 | 10. helmikuuta 2011 | Renderöinti on nyt täysin vastuussa Cairosta , joka on abstraktio X11:stä, käyttäen XInput2:ta, tukea CSS :n kaltaisille skineille |
3.0.12 |
3.2 | 25. syyskuuta 2011 | Uudet kokeelliset Wayland- ja HTML5 -taustaohjelmat , uusi kirjasimen valintaikkuna, uudet widgetit: GtkLockButton ja GtkOverlay |
3.2.4 |
3.4 | 26. maaliskuuta 2012 | Tuki kosketusnäytöille, mukaan lukien monikosketus, tasaisen vierityksen tuki, parannettu tuki Windowsille, MacOS X, laajennettu API visuaalisille teemoille |
3.4.4 |
3.6 | 24. syyskuuta 2012 | Uudet widgetit: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Numeroiden syöttöpainikkeet GtkSpinButton voidaan nyt sijoittaa pystysuoraan. Tuki CSS-animaatioille, sumeille varjoille. |
3.6.5 |
3.8 | 13. toukokuuta 2013 | Wayland 1.0 -tuki, Broadway GDK -taustajärjestelmän uudelleensuunnittelu, parannetut teemat ja geometrian hallinta. Ponnahdusikkunoiden tuki on lisätty, ja suorituskyvyn parantamiseksi on tehty paljon työtä |
3.8.9 |
3.10 | 23. syyskuuta 2013 | Uudet widgetit (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Wayland 1.2 -tuki (maksimointi, animoidut osoittimet, useat näytöt, asetukset, mukautetut pinnat ja kehyssynkronointi) |
3.10.9 |
3.12 | 25. maaliskuuta 2014 | Wayland 1.5 -tuki; Uudet widgetit (Popover, GtkActionBar, GtkFlowBox). Parannettu globaali valikkotuki OS X :ssä. | 3.12.2 |
3.14 | 22. syyskuuta 2014 | Wayland 1.6 -tuki; Interaktiivisen virheenkorjausohjelman GtkInspector integrointi. GdkColor-, GtkMisc-, GtkArrow-, GtkStatusIcon-, GtkNumerableIcon- ja GtkThemingEngine-widgetien tuki on lopetettu. | 3.14.6 |
3.16 | 22. maaliskuuta 2015 | GDK:n sisäänrakennettu tuki ikkunoiden piirtämiseen OpenGL:n kautta X11:lle ja Waylandille libepoxyn kautta GLX:n tai EGL:n avulla, uudet widgetit (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), Experimental Mir -tuki . | 3.16.0 |
3.18 | 22. marraskuuta 2015 | Päivitetty tiedostojen valintasuunnittelu, poistettu tuki Windows XP:lle | 3.18.5 |
3.20 | 21. maaliskuuta 2016 | Toteutettu CSS-solmujärjestelmä, uusi GtkShortcutsWindow- widget | 3.20.3 (linkki ei käytettävissä) |
3.22 | 20. syyskuuta 2016 | Lisätty GtkPadController API tablettien eleiden käsittelyyn, uusi GtkShortcutLabel-widget, integroitu Flatpak-tekniikka | 3.22.0 |
4.0 | 16. joulukuuta 2020 [9] | GTK 4.0 -grafiikkatyökalupaketin julkaisu | 4.0.3 |
4.2 | 30. maaliskuuta 2021 [10] | GTK 4.2 -grafiikkatyökalupaketin julkaisu | 4.2.1 |
4.4 | 23. elokuuta 2021 [11] | GTK 4.4 -grafiikkatyökalusarjan julkaisu | 4.4.0 |
4.6 | 30. joulukuuta 2021 [12] | GTK 4.6 -grafiikkatyökalut saatavilla | 4.6.2 |
GTK+ on kirjoitettu C -kielellä , mutta on siitä huolimatta oliosuuntautunut [13] . Yksi syy C:n valitsemiseen kieleksi oli halu rakentaa helposti rajapintoja muille ohjelmointikielille . Tämän seurauksena GTK+ voidaan kirjoittaa seuraavilla ohjelmointikielillä:
Kieli | Nimi | Tuki |
---|---|---|
Ada | GtkAda | Osittainen tuki 2.18 asti |
C | GTK+ | Sisäänrakennettu |
C++ | gtkmm | Joo |
C# ja muut .NET - ohjelmointikielet |
gtk# | Osittainen tuki 2.20 asti |
D | gtkD | GTK2-tuki oli gtkD-1.7.4, jälkeen - GTK3 (plus Kairo , Gda , Gl , GStreamer ) |
Erlang | gtkNode | Osittainen tuki 2.16 asti |
Fortran | gtk-fortran | Osittainen tuki 2.24 / 3.0 asti |
mennä | go-gtk | Osittainen tuki (33 %) [14] |
GOB | GObject-järjestelmää varten kirjoitetut kielet . | Joo |
Genie | GObject-järjestelmää varten kirjoitetut kielet . | Joo |
Haskell | gtk2hs | Joo |
FreeBASIC | GTK+tupakka2 | Osittainen tuki ennen 2.22:ta: Myös GTK3 tukee |
Ilmainen Pascal | (otsikko) integroitu ydinjakeluun | GTK 2.16 osittaisella myöhemmällä tuella |
Java | java-gnome | Osittainen tuki 2.20 asti (ei saatavilla Windowsissa) |
JavaScript | siemen / GJS | Joo |
Lua | lgob | Tukee kaikkia versioita 2.16 alkaen |
Lisp | cl-cffi-gtk | |
Lua | LuaGtk | Osittainen tuki 2.16 asti |
Node.js | solmu-gtk | Joo |
OCaml | LabelGTK | Osittainen tuki 2.16 asti |
Perl | perl-Gtk3 | Joo |
PHP | PHP-GTK | Osittainen tuki 2.20 asti |
PureBasic | gtk2 | Joo |
Python | GObject - itsetutkiskelu PyGI :n kautta , entinen PyGTK | Joo |
R | RGtk2 | Osittainen tuki 2.12 asti |
rubiini | rubiini-gtk2 | Joo |
Rupattelu | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | Joo |
Vala | GObject-järjestelmää varten kirjoitetut kielet . | Joo |
Itse asiassa GTK+ koostuu kahdesta osasta: GTK ja GDK . Ensimmäinen sisältää joukon käyttöliittymäelementtejä tai " widgetejä " (kuten painike , luettelo, tekstinsyöttökenttä jne. ) eri tehtäviin. GDK vastaa näytön tulostamisesta ja voi käyttää X Window System - , Wayland - , Linux Framebuffer - , WinAPI - tai Mac OS X - toimintoja tähän . Versiosta 2.8 lähtien GDK on suurelta osin (mutta ei kokonaan) korvattu Kairon vektorigrafiikkarenderöintijärjestelmällä .
Kairon lisäksi GTK+ on riippuvainen kolmesta kirjastosta - GLib , Pango ja ATK - jotka on kehitetty GTK+:n rinnalla, mutta joita voidaan käyttää myös erikseen. [kahdeksan]
Käyttäjä ja/tai ohjelmoija voivat määrittää GTK+:lla luotujen graafisten käyttöliittymien ulkoasun . Tässä tapauksessa ei vain värejä ja fontteja määritetä, vaan myös tapa, jolla eri elementit näytetään. Tämä saavutetaan käyttämällä näyttöön " moottoreita ". Kytkemällä toisen moottorin voit muuttaa ohjelmien ulkonäköä radikaalisti. Jotkin moottorit voivat esimerkiksi käyttää pseudo- 3D - näkymää, toiset "litteämpää" näkymää jne.
GNOME- ja Xfce-pöytäkoneet perustuvat GTK+:aan . GTK+:aa käyttävät ohjelmat voivat toimia muissa ympäristöissä, kuten KDE ja LXQt . Lisäksi GTK+ voi toimia myös Microsoft Windows- ja Mac OS X -perheiden käyttöjärjestelmissä .
GTK+ on myös valittu Monon ( Microsoft.NET -portin Linuxille) pääkäyttöliittymän rakennuskirjastoksi. [viisitoista]
Seuraava on epätäydellinen (koska GTK on liian suosittu) luettelo GTK:ta käyttävistä projekteista:
GTK+:a käyttävät työpöytäympäristötGTK-versio 3.0.0 uudisti syöttölaitteiden käsittelyä, sisälsi tuen CSS-kaltaisella syntaksilla kirjoitetuille teemoille ja lisäsi mahdollisuuden saada tietoa muista avoimista GTK-sovelluksista.
GTK+:n seuraavan version kehitys alkoi helmikuussa 2009 GTK+ Theming Hackfestissä Dublinissa [16] . Kehittämissuunnitelman ensimmäinen luonnos julkaistiin 9. huhtikuuta 2009 [17] .
10. helmikuuta 2011 GTK+ 3.0.0 julkaistiin.
Yksinkertainen terve maailma! » GTK+:ssa Linuxissa
/* Sisällytä GTK+ -kirjasto */ # sisältää <gtk/gtk.h> int main ( int argc , char * argv []) { /* Ilmoita widgetit */ GtkWidget * etiketti ; // Tunniste GtkWidget * ikkuna ; // Pääikkuna /* Alusta GTK+ */ gtk_init ( & argc , & argv ); /* Luo pääikkuna */ ikkuna = gtk_ikkuna_uusi ( GTK_WINDOW_TOPTASO ); /* Aseta ikkunan otsikoksi "Hei maailma!" */ gtk_window_set_title ( GTK_WINDOW ( ikkuna ), "Hei maailma! " /* Luo tarra tekstillä "Hei maailma!" */ label = gtk_label_new ( "Hei maailma!" ); /* Lisää tarra pääikkunaan */ gtk_container_add ( GTK_CONTAINER ( ikkuna ), otsikko ); /* Näytä ikkuna widgetien kanssa */ gtk_widget_show_all ( ikkuna ); /* Yhdistä lopetussignaali ohjelman poistoon */ g_signal_connect ( G_OBJECT ( ikkuna ), "tuhoa" , G_CALLBACK ( gtk_main_quit ), NULL ); /* Sovellus siirtyy ikuiseen silmukkaan odottaen käyttäjän toimia */ gtk_main (); paluu 0 ; }Esimerkin kääntämiseksi sinun on suoritettava komento:
gcc file_name.c -o tiedoston_nimi `pkg-config --cflags --libs gtk+-3.0`Windowsissa voit kääntää esimerkin käyttämällä MinGW : tä seuraavalla komennolla:
i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR=yes PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs gtk.+GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ydinsovellukset |
| ||||||||||||||||
Sovellukset |
| ||||||||||||||||
Komponentit | |||||||||||||||||
Alustan arkkitehtuuri |
| ||||||||||||||||
Yhteisö | |||||||||||||||||
Ihmiset | |||||||||||||||||
|
GUI-elementtien työkalupakkit (sarjat) . | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matalatasoinen _ |
| ||||||||||||||||||||||||||
korkea taso |
|