GTK+ Overview

GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released under the GNU Library General Public License (GNU LGPL), which allows for flexible licensing of client applications. GTK+ has a C-based object-oriented architecture that allows for maximum flexibility. Bindings for other languages have been written, including C++, Objective-C, Guile/Scheme, Perl, Python, TOM, Ada95, Free Pascal, and Eiffel.

GTK+ depends on the following libraries:


A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.


Pango is a library for internationalized text handling. It centers around the PangoLayout object, representing a paragraph of text. Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display text.


ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK+ widgets have built-in support for accessibility using the ATK framework.


This is a small library which allows you to create GdkPixbuf ("pixel buffer") objects from image data or image files. Use a GdkPixbuf in combination with GtkImage to display images.


GDK is the abstraction layer that allows GTK+ to support multiple windowing systems. GDK provides drawing and window system facilities on X11, Windows, and the Linux framebuffer device.


The GTK+ library itself contains widgets, that is, GUI components such as GtkButton or GtkTextView.

Table of Contents

Compiling the GTK+ libraries - How to compile GTK+ itself
Compiling GTK+ Applications - How to compile your GTK+ application
Running GTK+ Applications - How to run and debug your GTK+ application
Using GTK+ on Windows - Windows-specific aspects of using GTK+
Using GTK+ on the Framebuffer - Linux framebuffer aspects of using GTK+
Using GTK+ on the X Window System - X11 aspects of using GTK+
Changes from 1.0 to 1.2 - Incompatible changes made between version 1.0 and version 1.2
Changes from 1.2 to 2.0 - Incompatible changes made between version 1.2 and version 2.0
Mailing lists and bug reports - Getting help with GTK+
Common Questions - Find answers to common questions in the GTK+ manual