Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| {{Perustietoa}}
| | GTK+ (Gimp ToolKit) on käyttöliittymäelementtien ([[widget]], vimpain) kirjasto jolla saadaan graafinen käyttöliittymä. GTK:n kehitys alkoi [[The GIMP]]-kuvankäsittelyohjelman kehittelyn myötä. GTK-kirjastoa käyttäviä ohjelmia voidaan kirjoittaa C:n ja C++:n lisäksi monilla muilla ohjelmointikielillä. |
| {{Kirjasto
| |
| | nimi = GTK+
| |
| | kuva =
| |
| | kuvateksti =
| |
| | tekijä =
| |
| | kehittäjä = The GTK Team
| |
| | ensijulkaisu = 14. elokuuta 1998
| |
| | vakaaversio = 4.0.0
| |
| | vakaapvm = 16. joulukuuta 2020
| |
| | kehitysversio =
| |
| | kehityspvm =
| |
| | ohjelmoitu = [[C]]
| |
| | kirjasto = käyttöliittymäkirjasto
| |
| | lisenssi = [[LGPL]]
| |
| | kotisivu = [https://www.gtk.org/ gtk.org]
| |
| | lähdekoodi =
| |
| }}
| |
| '''GTK+''' (GIMP ToolKit) on [[kirjasto]] [[GUI|graafisen käyttöliittymän]] toteuttamiseen.
| |
|
| |
|
| Sitä käyttäviä ohjelmia voidaan kirjoittaa [[C]]:n ja [[C++]]:n lisäksi monilla muilla [[Ohjelmointikielet|ohjelmointikielillä]], ja [[Unix]]-tyylisten käyttöjärjestelmien lisäksi useille muille alustoille (mm. [[Windows]] ja [[Maemo]]). GTK+:n lisenssi on [[LGPL]]. GTK+:n kehitys alkoi [[GIMP]]-kuvankäsittelyohjelman kehittelyn myötä, koska [[Qt]]-kirjaston lisenssi ei siihen aikaan ollut tarpeeksi salliva.
| | = Linkkejä = |
| | | * [http://www.gtk.org/ Kotisivu] |
| GTK+-pakettiin kuuluu [[Glib]]-kirjasto, joka korvaa joitakin standardikutsuja ja toteuttaa hyödyllisiä tietorakenteita, muiden muassa linkitetyn listan. Tiettyjen standardikutsujen korvaaminen uusilla lisää GTK+:n siirrettävyyttä ja jotkut kutsut ovat kokonaan uusia tai epästandardeja Unixeissa, esimerkiksi <tt>g_stderror()</tt>. Joissain funktioissa on lisätty toiminnallisuutta, esimerkkina <tt>g_malloc</tt>, joka laajentaa muistinkäsittelyyn liittyvien virheiden etsintämekanismeja. Koska Gtk+ on tehty kokonaan Gdk:n ja Glibin avulla, sen kääntämiseksi muihin ympäristöihin riittää pelkästään näiden kahden sovittaminen uuteen ympäristöön.
| |
| | |
| GTK+ on olioperustainen sovellusohjelmarajapinta. Vaikka se on kirjoitettu kokonaan C-ohjelmointikielellä, se on toteutettu käyttäen luokkia ja liitosfunktioita (engl. callback) eli osoittimia funktioihin.
| |
| | |
| GTK+ perustuu neljään eri projektin kehittämään kirjastoon:
| |
| | |
| * GLib on matalan tason kirjasto. Se sisältää yleisiä rajapintoja ja funktioita esimerkiksi tietorakenteiden ja säikeiden hallintaan sekä tapahtumien käsittelyyn.
| |
| * Pango on tekstin renderöintiin tarkoitettu kirjasto, jossa on huomioitu erityisesti tuki eri kielille ja kirjoitusjärjestelmille.
| |
| * Cairo on kirjasto kaksiulotteisen grafiikan tuottamiseen.
| |
| * ATK on esteettömyyskäyttöliittymäkirjasto, jonka avulla ohjelmat voivat tukea esimerkiksi suurennosta ja vaihtoehtoisia syöttölaitteita.
| |
| | |
| Käyttöliittymän elementtien ulkoasua on GTK+:ssa mahdollista vaihdella erilaisilla teemamoottoreilla sekä niille tehdyillä teemoilla.
| |
| | |
| ==Oman GTK-ohjelman kääntäminen==
| |
| [[Pkg-config]]illa voi myös näyttää mitä osia [[GTK]]-kirjastoon kuuluu.
| |
| | |
| pkg-config --libs gtk+-2.0
| |
| | |
| Gtk+-2.0 version tuloste on tämän näköinen.
| |
| -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
| |
| | |
| Sekä headerit eli otsikkotiedot
| |
| pkg-config --cflags gtk+-2.0 | |
| | |
| Jos haluan kääntää GTK-kirjastoa käyttävän C++-lähdekooditiedoston ohjelma.cpp
| |
| g++ ohjelma.cpp `pkg-config --libs gtk+-2.0` `pkg-config --cflags gtk+-2.0`
| |
| | |
| ==Graafisia kehitystyökaluja==
| |
| *[[Anjuta]] - ohjelmointiympäristö (IDE)
| |
| *[[Glade]] - käyttöliittymän suunnittelu
| |
| | |
| ==GTK+-kirjastoa käyttäviä ohjelmia==
| |
| * [[GIMP]]
| |
| * [[Gnome]]
| |
| * [[Lazarus]]
| |
| | |
| ==Katso myös==
| |
| *[[Qt]]
| |
| *[[SDL]]
| |
| | |
| ==Aiheesta muualla==
| |
| * [http://zetcode.com/tutorials/gtktutorial/ Opas GTK+-ohjelmointiin]
| |
| * [http://www.flug.fi/ohjeita/x-ohjelmointi.html Opas X ja GTK+ ohjelmointiin]
| |
| * [http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html Opas GTK+- ja Glade-ohjelmointiin]
| |
| | |
| [[Luokka:Kirjastot]]
| |