Stability

GTK has been developed for over a decade to be able to deliver the enticing features and superb performance that it brings to your application development. GTK is supported by a large community of developers and has core maintainers from companies such as Red Hat, Novell, Lanedo, Codethink, Endless Mobile and Intel.

Language Bindings

GTK is available in many other programming languages thanks to the language bindings available. This makes GTK quite an attractive toolkit for application development.

Interfaces

GTK has a comprehensive collection of core widgets and interfaces for use in your application.

The Widget Factory
  • 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)

Cross Platform

Originally GTK was developed for the X Window System but it has grown over the years to include backend support for other well known windowing systems. Today you can use GTK on:

Accommodating

GTK caters for a number features that today's developers are looking for in a toolkit including:

  • Native look and feel
  • Theme support
  • Thread safety
  • Object oriented approach
  • Internationalization
  • Localization
  • Accessibility
  • Bidirectional text support (LTR/RTL, Left To Right/Right To Left)
  • UTF8 support
  • Documentation

Foundations

GTK is built on top of GLib. GLib provides the fundamental algorithmic language constructs commonly duplicated in applications. This library has features such as: (this list is not a comprehensive list)

  • Object and type system
  • Main loop
  • Dynamic loading of modules (i.e. plug-ins)
  • Thread support
  • Timer support
  • Memory allocator
  • Threaded Queues (synchronous and asynchronous)
  • Lists (singly linked, doubly linked, double ended)
  • Hash tables
  • Arrays
  • Trees (N-ary and binary balanced)
  • String utilities and charset handling
  • Lexical scanner and XML parser
  • Base64 (encoding & decoding)

Mobile

The GMAE (GNOME Mobile & Embedded) initiative has advanced the use, development and commercialization of GNOME components as a mobile and embedded user experience platform. It has brought together industry leaders, expert consultants, key developers and the community and industry organizations they represent. As a direct result of this, GTK has features pertaining to mobile and embedded platform requirements.

GTK has been involved in a number of embedded initiatives over the past few years including the development of: