GTK+, or the
GIMP Toolkit, is a multi-platform toolkit for creating graphical user
interfaces. GTK+ is a highly usable, feature rich toolkit for
creating graphical user interfaces which boasts cross platform compatibility and
an easy to use API.
Gtk started as a collection of widgets for the
GNU Image Manipulation Program (GIMP) but has since grown in popularity, its
popularity has been encouraged through its language independence, which is achieved through language bindings (also called wrappers). These
wrappers provide the API for accessing the Gtk+ toolkit from multiple languages
such as C, C++, Java, Perl, Python,and of course C# and scale to be used by a significant number of applications,
including the GNOME desktop.
The Gtk+ toolkit fundamentally consists of a number of libraries, including the
A core library that provides important basic functionality required by
not just Gtk+ but also by GNOME. This functionality includes support for
threads, data structures, event handling, and so on.
Provides support for layout management and text rendering, including the
ability to provide support for internationalization.
- Accessibility Toolkit (ATK) library
Provides support for accessibility standards to be used in tools for
people with special needs, such as the visually impaired. Some examples of
accessibility tools include screen readers, magnifiers, and so on.
GTK+ individual packages
Required third party dependencies
The run-time packages here are required by the
Other third party software
packages are not needed to run software that uses just GTK+, or to develop such
software. These packages are used when building and running more complex
Glade is a RAD (Rapid Application Development) tool for designing GTK+
applications. Glade is a GTK+ application itself. It is simply a piece of
software developers use to simplify the process of laying out an application's
interface. Glade creates what will here forth be referred to a s a "glade file".
A glade file is actually an XML file which describes the hierarchy of the
widgets comprising the interface.
Glade is an open-source tool that allows you to visually design your user
interface using the Gtk+ toolkit and then save this visual representation as an
XML file that can be dynamically loaded and utilized by an application that is using the appropriate library.
Navigating the Glade User Interface
The Glade tool makes defining the user interface to your application simple.
It's presented as three windows that interact with one another, including the
main window, the Pallet window, and the Properties window.
The controls, or widgets, by selecting the button associated with the category
of controls you want to view
The categories exposed via the buttons include the following:
This holds the basic controls that form the foundation of most GUIs (for
example, the Window control and the Button control).
This holds controls that are useful but used less often (for example, the
Font Selection Dialog control and the Calendar control).
This holds controls that are no longer being developed and have since been
replaced but are shown for backward compatibility.
The Properties window allows you to view and
modify a variety of properties associated with the control that currently has
You can access a tab by simply selecting it;
the properties associated with that category then display for you to view or
edit. These categories are as follows:
This set contains the core properties associated with the selected control
and are typically focused on visual attributes such as DefaultWidth,
DefaultHeight, and so on.
These properties are associated with those controls that have an array of
elements and prescribed order. For example, the Tab control is an array of
tabs with properties that can be modified through the Packing tab.
its name suggests, this set contains the common properties associated with a
given control, both visual and programmatic. These properties are common to
all controls and as such are contained on their own tab. For example, this includes
Width, Height, Modal, and Event masks (indicators of which events you want
to be raised).
These properties allow you to associate event handlers with events (that is,
signals)that the control may encounter. These signals are hierarchical in
nature and so include all the events that may be thrown by the control and all the descendants.
These controls allow you to modify attributes to make your applications more
accessible. For example, the ZoomText control provides a "zoom" window for
the visually impaired that displays text in a large font.