|SoftwareLibero = sì
}}
'''GTK+''' (in passato '''GTK+'''<ref>{{Cita web|url=https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html|titolo=Project rename to "GTK"|autore=Emmanuele Bassi|sito=mail.gnome.org|data=6 febbraio 2019|accesso=2019-02-08}}</ref>, acronimo che sta per '''GIMP ToolKit''') in [[informatica]], è un [[toolkit]] (insieme di strumenti, di cui il principale è la libreria libgtk) per la creazione di [[interfaccia grafica|interfacce grafiche]]. Sviluppato in [[C (linguaggio)|C]], supporta nativamente l'ambiente grafico [[X Window System]] e [[Microsoft Windows]] ed è [[software libero]] (parte del progetto [[GNU]]) secondo la licenza [[GNU Lesser General Public License|LGPL]].
Il toolkit, progettato inizialmente come ausilio alla programmazione per il noto programma di grafica [[The GIMP|GIMP]], ha acquisito popolarità scavalcando [[Motif]] e divenendo parte fondamentale dell'ambiente desktop [[GNOME]].
== Linguaggio ==
GTK+ usa il linguaggio di programmazione [[C (linguaggio)|C]] esteso, grazie a [[GLib]] e [[GObject]], al paradigma della [[programmazione orientata agli oggetti]]. GTK+ fornisce [[binding]] per linguaggi come il [[C++]], il [[Perl]], il [[Ruby]], il [[Java (linguaggio di programmazione)|Java]] e [[Python]] ([[PyGTK]]). Altri hanno aggiunto anche il supporto ad altri linguaggi come [[Ada (linguaggio)|Ada]], [[Fortran]], [[D (linguaggio di programmazione)|D]], [[Haskell (linguaggio)|Haskell]], [[Pascal (linguaggio)|Pascal]], [[PHP]], [[Pike(linguaggio)|Pike]] e [[C sharp|C#]] grazie a [[Mono (progetto)|Mono]] (Gtk#).
== Codice non collegato alla grafica ==
GTK+ inizialmente conteneva alcune funzioni di utilità che non riguardavano strettamente la grafica, per esempio la fornitura di [[strutture dati]] come [[lista concatenata|liste concatenate]] e [[albero binario|alberi binari]]. Tali utilità generali, insieme con il sistema a oggetti chiamato GObject, ora sono stati migrati in una libreria ([[GLib]]) separata, che i programmatori possono utilizzare per sviluppare codice che non necessita di una interfaccia grafica. Un tipico esempio di questo approccio è il progetto [[GStreamer]]. GLib è comunque mantenuta dagli sviluppatori di GTK+.
Per la sua estendibilità, [[portabilità]] e bontà tecnica è stata scelta come componente per altri widget toolkit, come [[wxWidgets]].
== Piattaforme ==
In origine la GTK+ era destinata solo all'[[X Window System]], che comunque rimane la piattaforma di riferimento. Attualmente può essere installata su [[Microsoft Windows]] (dalla versione 2.8 è richiesto [[Windows 2000]] o superiore), [[DirectFB]], e [[Quartz (Mac OS X)|Quartz]] ([[Mac OS X Tiger]] o superiore, ancora in sviluppo).
== Aspetto ==
[[File:Gedit-italiano.png|thumb|upright=1.3|L'[[editor di testo]] «''[[gedit]]''», realizzato con GTK+]]
L'utente finale può configurare l'aspetto dell'interfaccia a suo piacimento grazie alla possibilità di cambiare il tema utilizzato. Si possono così emulare le sembianze di altre librerie o di altri ambienti, tra i quali [[Windows 95]], [[Motif]], [[Qt (toolkit)|Qt]] o [[NEXTSTEP]].
== Storia ==
=== GTK+ 2 ===
GTK+ 2 si è sviluppata con l'intenzione di sostituire e migliorare la GTK+. Tra le nuove caratteristiche<ref>{{cita web | titolo=Novità introdotte nella Gtk+ 2 | url=http://svn.gnome.org/viewvc/gtk%2B/trunk/NEWS?revision=6251&view=markup | sito=codice sorgente della Gtk | accesso=14 maggio 2008 | lingua=en | urlmorto=sì }}</ref>, inserite gradualmente già dalla GTK+ originale, si segnalano:
A partire dalla versione 2.8, GTK+ 2 dipende dalla libreria [[Cairo (grafica)|Cairo]] per il rendering dell'interfaccia mediante grafica vettoriale 2D.
=== GTK+ 3 ===
{{Sezione vuota|informatica}}
=== Rilasci ===
== Usi ==
{{Vedi categoria|Software in GTK+}}
=== Ambienti che usano GTK+ ===
Le librerie GTK+ sono parte integrante del progetto GNOME e sono perciò le fondamenta dell'interfaccia utente di ogni programma sviluppato per GNOME. La versatilità e la relativa leggerezza hanno consentito alle GTK+ di essere alla base di altri [[desktop environment]] considerati più ''leggeri''. Infatti esiste una versione di GNOME dedicata agli ambienti embedded [https://web.archive.org/web/20110125101453/http://www.gnome.org/mobile/ GNOME Mobile].
Ad oggi sono usate per i seguenti ambienti:
* [[GNOME]] è basato su GTK+, quindi le applicazioni GNOME usano GTK+
* [[Xfce]] è basato su GTK+, anche se le sue applicazioni tipicamente non dipendono da molte librerie (questa è la differenza tra quello che è marcato “applicazione GNOME” e quello che è semplicemente “applicazione GTK+”GTK”).
* [[LXDE]] è basato su GTK+, l'acronimo significa "Lightweight X11 Desktop Environment"
* [[ROX Desktop]] è un desktop leggero, con funzioni che provengono dalla [[GUI]] del [[RISC OS]]
* [[GPE Palmtop Environment]] Linux sui palmari e Familiar Linux
* [[Access Linux Platform]] (successore della piattaforma [[Palm OS]] [[Personal digital assistant|PDA]])
* [[One Laptop per Child]] il progetto caritatevole "Un laptop per ogni bambino" usa GTK+ e [[PyGTK]]
* [[Openmoko (sistema operativo)|Openmoko]] telefono, GPS e palmare Linux, utilizza GTK+ per l'interfaccia fin dalla prima versione anche se nelle ultime distribuzioni supporta anche [[Qt (toolkit)|QT]] ed [[Enlightenment]].
Non è necessario usare questi ambienti grafici per eseguire programmi GTK+. Se un programma richiede le librerie e queste sono installate, può funzionare anche su altri ambienti basati su X11, come KDE; Questo comprende Mac OS X se X11.app è installato. GTK+ può funzionare anche su Microsoft Windows, ed è utilizzato da alcune popolari applicazioni cross-platform come GIMP e Pidgin. [[wxWidgets]], un cross-platform GUI toolkit, usa GTK+ su tutti i sistemi Unix. Alcuni port tra i più insoliti sono DirectFB e [[ncurses]].
=== Window managers ===
* [[Metacity]] e [[Xfwm4]] usano GTK+ 2.
=== Applicazioni scritte usando GTK+ ===
Alcune significative applicazioni multipiattaforma con codice aperto che usano GTK+ come widgets toolkit:
* [[CinePaint]] (ex FilmGimp) - Editor di immagini Raster [[High dynamic range imaging|HDR]]
* [[Ekiga]] (ex GnomeMeeting) - H.323/SIP VoIP softphone
|