GTK (The GIMP Toolkit, anciennement GTK+) est un ensemble de bibliothèques logicielles, c'est-à-dire un ensemble de fonctions permettant de réaliser des interfaces graphiques. Cette bibliothèque a été développée originellement pour les besoins du logiciel de traitement d'images GIMP. GTK+ est maintenant utilisé dans de nombreux projets, dont les environnements de bureau GNOME, Xfce, Lxde et ROX.
GTK est un projet libre (licence GNU LGPL 2.1) et multiplate-forme.
GTK est écrit en langage C et utilise pourtant le paradigme de la programmation orientée objet grâce à la bibliothèque GObject. Il est également possible d'utiliser GTK dans de nombreux autres langages de programmation: C++ (avec gtkmm), C# et Visual Basic (Gtk#), F# (Gtk#), Java (), JavaScript, Perl, Python, Vala, Ada, D, Fortran, Haskell, OCaml, PHP, Ruby (), Rust, etc.
GTK est l'interface de différents environnements de bureau comme GNOME, Xfce ou encore ROX ce qui permet une intégration parfaite. Il s'intègre également dans d'autres environnements de bureau GNU/Linux grâce à un moteur de thème qui mime l'interface initiale. Il en va de même sur Windows et Mac OS X.
Parmi ces moteurs de thèmes, on retrouve Luna (Windows XP), Motif, Qt ou NeXTSTEP. Mais aussi des moteurs originaux comme Industrial par Novell ou Bluecurve par Red Hat.
GTK+2 a succédé à GTK+1.2, marquant une rupture de compatibilité. Ainsi, les applications basées sur GTK+1.2 et souhaitant utiliser GTK+2 ont dû être adaptées.
La bibliothèque intègre un nouveau système de rendu du texte utilisant Pango, un nouveau moteur de thème, une meilleure accessibilité en utilisant ATK (Accessibility Toolkit), prend en charge complètement Unicode en utilisant l'UTF-8 et une API plus flexible.
Quelques évolutions notables :
GTK+ 2.4 introduit un nouveau sélecteur de fichiers qui sera perfectionné progressivement par la suite.
GTK+ 2.8 permet l'exploitation de Cairo.
GTK+ 2.10 offre un système complet pour l'impression et gère la liste des fichiers récemment ouverts.
GTK+ 2.