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. You can create user interfaces either in code or with the Glade User Interface designer, using Gtk::Builder. There's extensive documentation, including API reference and a tutorial.

gtkmm is free software distributed under the GNU Lesser General Public License (LGPL).


  • 개별 위젯을 끌어올 때 상속을 활용합니다.
  • 표준 C++에서 형 안전 시그널 핸들러를 사용합니다.
  • 다형성을 추구합니다.
  • 문자열, 컨테이너, 반복자 등의 표준 C++ 라이브러리를 활용합니다.
  • UTF8 인코딩으로 완벽한 국제화를 지원합니다.
  • 완전한 C++ 메모리 관리
    • 객체 조합
    • 동적으로 할당한 위젯을 자동으로 해제합니다.
  • C++ 이름 영역을 완벽하게 활용합니다.
  • 매크로를 사용하지 않습니다.
  • Cross-platform: Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris (gcc, Forte), Win32 (gcc, MSVC 2013 or later (gtkmm3), MSVC 2017 or later (gtkmm4)), MacOS X (gcc), others
  • 오픈 소스와 상업용 개발을 위한 자유 소프트웨어이며 비용 지불의 자유가 있습니다.
  • 공개적으로 토론하고, 설계하며, 구현합니다.

다른 gtkmm 관련 라이브러리


gtkmm is a GUI toolkit and nothing more, and it strives to be the best C++ GUI toolkit. That mandate does not cover generic C++ data structures, an XML parser, or database access. Even our signal/slots system is part of a separate (libsigc++) library. However, gtkmm is designed to work well with all other C++ libraries.

gnomemm 라이브러리는 이 기타 부분의 일부를 담당하지만, 취향에 따라 사용할 수 있습니다.


Also, be sure to check out our companion libraries, glibmm (UTF8 strings, threading, etc) and libsigc++ (signal/slots).


Be sure to check out Bakery, a framework for constructing gtkmm/gnomemm applications. It allows use of the Document/View architecture.