GTK+, formerly GIMP Toolkit
, is a cross-platform widget toolkit for creating graphical user interfaces (GUIs). Originally developed for Windows system, you can now use GTK+ on GNU/Linux and Unix, Mac OS X and mobile devices, under the GMAE (GNOME Mobile and Embeded initiative).
GTK+ offers a set of widgets suitable for projects ranging from small one-off tools to complete application suites. It has an easy to use API to speed up application development time.
GTK+ is written in C but thanks to the language bindings available, it supports a wide range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python, especially in combination with the Glade GUI Builder, provides an effective method of rapid application development.
GTK+ has a comprehensive collection of core widgets and interfaces for application development:
- Windows (normal window or dialog, about and assistant dialogs)
- Displays (label, image, progress bar, status bar)
- Buttons and toggles (check buttons, radio buttons, toggle buttons and link buttons)
- Numerical (horizontal or vertical scales and spin buttons) and text data entry (with or without completion)
- Multi-line text editor
- Tree, list and icon grid viewer (with customizable renderers and model/view separation)
- Combo box (with or without an entry)
- Menus (with images, radio buttons and check items)
- Toolbars (with radio buttons, toggle buttons and menu buttons)
- GtkBuilder (creates your user interface from XML)
- Selectors (color selection, file chooser, font selection)
- Layouts (tabulated widget, table widget, expander widget, frames, separators and more)
- Status icon (notification area on Linux, tray icon on Windows)
- Printing widgets
- Recently used documents (menu, dialog and manager)
GTK+ is built on top of GLib. GLib provides the fundamental algorithmic language constructs commonly duplicated in applications.
Features of GLib includes:
- Object and type system
- Main loop
- Dynamic loading of modules
- Thread support
- Timer support
- Keyed data lists
- Memory allocator
- Threaded Queues (synchronous and asynchronous)
- Double ended, singly and doubly linked lists
- Hash tables
- Warnings and assertions
- N-ary trees and balanced binary trees
- String utilities and charset handling
- Lexical scanner and XML parser
- Base64 (encoding & decoding)
- Standard macros
Features of GTK+ Toolkit:
GNU/Linux and Unix
- Native look and feel
- Theme support
- Thread safety
- Object oriented approach
- Bidirectional text support (LTR/RTL, Left To Right/Right To Left)
- UTF8 support
You will need to get the GLib, GObject-Introspection, Pango, Gdk-Pixbuf, ATK and GTK+ packages to build GTK+.
You will need the GLib, cairo, Pango, ATK, gdk-pixbuf and GTK+ developer packages to build software against GTK+. To run GTK+ programs you will also need the gettext-runtime, fontconfig, freetype, expat, libpng and zlib packages.
The packages here are for people who develop software that uses GTK+. This page is not intended directly for end-users. It is expected that people who build installers for GTK+ applications for Windows bundle GTK+ with them.
If you find choosing, downloading and unpacking the individual zip archives below a chore, there is an all-in-one bundle of the GTK+ stack including 3rd-party dependencies. The bundle contains both run-time and developer files.