GTK (toolkit)
Creato inizialmente per il programma di grafica GIMP, il GIMP Toolkit, abbreviato come GTK+, è uno dei widget toolkit per greare interfacce utente più popolari per X Window System. GTK+ e Qt hanno sostituito Motif, una volta il più diffuso widget toolkit per X

Distribuito secondo la LGPL, GTK+ è software libero (e open source, distrubuito come parte del progetto GNU).
Linguaggio
GTK+ usa il linguaggio di programmazione C, sebbene sia stato progettato secondo il paradigma della programmazione orientata agli oggetti. I bindings della piattaforma GNOME forniscono interfacce per il C++, il Perl, Ruby, Java e Python. Sono state scritte interfacce verso altri linguaggi di programmazione.
Aspetto
L'utente finale può configurare a suo piacimento il toolkit, visto che vengono offerti "motori" per diverse piattaforme. Esistono motori che possono emulare l'aspetto di diversi toolkit o piattaforme, come Windows 95, Motif, Qt o NextStep.
Ambienti per GTK+
L'ambiente GNOME usa Gtk+ come base, il che significa che ogni programma scritto per GNOME usa GTK+ come suo toolkit. Non lo usano solo le applicazioni GNOME, visto che ogni programma GTK+ (o anche un programma GNOME) può girare sugli altri desktop enviroments, come KDE o XFce. Anche il GPE Palmtop Environment usa GTK+ come base. GTK+ gira anche su Microsoft Windows. Alcuni dei porting più inusali comprendono DirectFB e ncurses.
Codice non collegato alla grafica
GTK+ inizialmente conteneva alcune utility che non erano strettamente collegate alla grafica, per esempio forniva la gestione di strutture dati come le liste connesse o gli alberi binari. Queste utility così generali, insieme con il sistema di gestione degli oggetti GObject, sono ora migrate in una libreria separata, Glib, che ora i programmatori usano spesso anche se sviluppano codice che non richiede un'interfaccia grafica.
GTK+ 2
GTK+ 2 si è sviluppato con l'intenzione di succedere a GTK+. Tra le nuove caratteristiche bisogna ricordare la gestione migliorata del testo con Pango, un nuovo gestore dei temi, l'accessibilità migliorata attraverso ATK, la completa traduzione verso lo Unicode usando stringhe UTF-8 ed una API più flessibile.
Il principale problema di GTK+ 2 è la completa mancanza di compatibilità con GTK+ 1. Questo ha fatto sì che alcune applicazioni usino tuttora le GTK+ 1, perché in alcuni casi offre meno complessità delle GTK+ 2.