GTK

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 19. toukokuuta 2015 tarkistetusta versiosta . tarkastukset vaativat 67 muokkausta .
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]

Historia

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

Arkkitehtuuri

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]

Ulkonäkö

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.

Käyttö

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öt Ikkunanhallintaohjelmat GTK+:lla GTK+:a käyttävät sovellukset

GTK+ 3.0

GTK-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.

Ohjelmaesimerkki

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

Katso myös

Liitännät muille ohjelmointikielille

Muistiinpanot

  1. Katso AUTHORS -tiedosto GTK+ -lähdearkistosta .
  2. http://directory.fsf.org/wiki/gtk+
  3. https://gitlab.gnome.org/GNOME/gtk/-/tags/4.8.2
  4. Gtk Open Source -projekti Open Hubissa: Kielisivu - 2006.
  5. Ilmaisten ohjelmistojen hakemisto
  6. ↑ Yleiskatsaus GTK+:sta ja sen  kirjastoista
  7. GTK+ -projekti ilmoittaa nimeämisestä uudelleen GTK:ksi . Haettu 10. huhtikuuta 2019. Arkistoitu alkuperäisestä 8. helmikuuta 2019.
  8. 1 2 GTK+ 2.18.0 julkaistu  (eng.)  (downlink) . Haettu 23. syyskuuta 2009. Arkistoitu alkuperäisestä 23. elokuuta 2011.
  9. gtk 4.0.0 . Haettu 27. lokakuuta 2021. Arkistoitu alkuperäisestä 28. lokakuuta 2021.
  10. gtk 4.2.0 . Haettu 27. lokakuuta 2021. Arkistoitu alkuperäisestä 27. lokakuuta 2021.
  11. gtk 4.4.0 . Haettu 27. lokakuuta 2021. Arkistoitu alkuperäisestä 24. elokuuta 2021.
  12. gtk 4.6.0 . Haettu 31. maaliskuuta 2022. Arkistoitu alkuperäisestä 23. tammikuuta 2022.
  13. GTK-opetusohjelma (downlink) . Haettu 9. elokuuta 2011. Arkistoitu alkuperäisestä 22. elokuuta 2011. 
  14. Go-GTK . mattn.github.io. Haettu 20. marraskuuta 2016. Arkistoitu alkuperäisestä 27. marraskuuta 2016.
  15. GtkSharp - Mono . Haettu 7. toukokuuta 2010. Arkistoitu alkuperäisestä 26. tammikuuta 2021.
  16. "GTK+ Theming Hackfest" -ilmoitus . Haettu 25. huhtikuuta 2009. Arkistoitu alkuperäisestä 17. heinäkuuta 2011.
  17. Gtk+ 3.0 -työsuunnitelma . Haettu 25. huhtikuuta 2009. Arkistoitu alkuperäisestä 12. huhtikuuta 2009.

Linkit