gtkmm 4.14.0
gtkmm Reference Manual


gtkmm is the official C++ interface for the popular GUI library GTK. Highlights include typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance.

For instance, see Widgets, Dialogs, ListView and TextView.

See also the Programming with gtkmm book.


  • GTK’s mature, capable set of widgets. See the GTK website for more information.
  • Use inheritance to derive custom widgets.
  • Type-safe signal handlers (slots), in standard C++, using libsigc++.
  • Polymorphism.
  • Use of the Standard C++ Library, including strings, containers and iterators.
  • Full internationalisation with UTF8.
  • Complete C++ memory management.
    • Member instances or dynamic new and delete.
    • Optional automatic deletion of child widgets.
    • No manual reference-counting.
  • Full use of C++ namespaces.
  • No macros.

Basic Usage

Include the gtkmm header:

#include <gtkmm.h>

(You may include individual headers, such as gtkmm/button.h instead.)

If your source file is, you can compile it with:

g++ -o program `pkg-config --cflags --libs gtkmm-4.0`

If your version of g++ is not C++17-compliant by default, add the -std=c++17 option.

If you use Meson, include the following in

gtkmm_dep = dependency('gtkmm-4.0')
program_name = 'program'
cpp_sources = [ '' ]
dependencies: gtkmm_dep

Alternatively, if using autoconf, use the following in


Then use the generated GTKMM_CFLAGS and GTKMM_LIBS variables in the project files. For example:

program_LDADD = $(GTKMM_LIBS)