Muokataan sivua GTK+

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{Perustietoa}}
GTK+ (GIMP ToolKit) on [[kirjasto]] [[GUI|graafisen käyttöliittymän]] toteuttamiseen.  
{{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.  
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.  


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+-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 muissa 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 niiden 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+ 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:
==Graafisia käyttöliittymäkehitysohjelmia==
 
* [[Glade]] - graafinen kääntäjä
* GLib on matalan tason kirjasto. Se sisältää yleisiä rajapintoja ja funktioita esimerkiksi tietorakenteiden ja säikeiden hallintaan sekä tapahtumien käsittelyyn.
* [[Glade3]] - graafinen käyttöliittymäkehitin
* Pango on tekstin renderöintiin tarkoitettu kirjasto, jossa on huomioitu erityisesti tuki eri kielille ja kirjoitusjärjestelmille.
* [[Anjuta]] - graafinen käyttöliittymäkehitin ja C-kielen muokkain
* 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==
==GTK+-kirjastoa käyttäviä ohjelmia==
Rivi 62: Rivi 22:


==Aiheesta muualla==
==Aiheesta muualla==
* [http://www.gtk.org/ Kotisivu]
* [http://zetcode.com/tutorials/gtktutorial/ Opas GTK+-ohjelmointiin]
* [http://zetcode.com/tutorials/gtktutorial/ Opas GTK+-ohjelmointiin]
* [http://www.flug.fi/ohjeita/x-ohjelmointi.html Opas X ja GTK+ ohjelmointiin]
* [http://www.flug.fi/ohjeita/x-ohjelmointi.html Opas X ja GTK+ ohjelmointiin]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)
Noudettu kohteesta ”https://www.linux.fi/wiki/GTK%2B