gtkmm 是流行的图形界面库 GTK+的官方 C++ 接口。其特色包括了类型安全、回调和一整组可以通过继承很容易扩展的组件。你既可以在代码中创建用户界面,也可以通过 Gtk::Builder 使用 Glade 用户界面设计工具 来设计、构建用户界面。这里有 丰富的文档,包括了API 参考手册和教程。

gtkmm 是在 GNU 库通用许可证(LGPL)下发布的自由软件。

gtkmm follows the official GNOME Platform Bindings release schedule. This guarantees API/ABI-stability and new releases on a predictable schedule, delivering C++ API for the underlying GTK+ and GNOME APIs as soon as possible.

特色

  • 使用继承来派生定制的组件。
  • 类型安全的信号句柄,而且是标准 C++。
  • 多态。
  • 使用标准 C++ 库,包括字符串、容器和迭代器。
  • 通过 UTF8 完全的支持国际化。
  • 完全的 C++ 内存管理
    • 对象组合(Object composition)
    • 自动释放动态分配的组件。
  • 完全使用了 C++ 的命名空间(namespaces)。
  • 没有宏(MACRO)
  • 跨平台:Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris (gcc, Forte), Win32 (gcc, MSVC++ .Net 2005, 2008), MacOS X (gcc), 其它
  • 自由免费的软件,无论是开发开源软件还是闭源软件,都是免费的。
  • 这是在公开环境下讨论、设计和实现的。

其它 gtkmm 相关的库

gnomemm

gtkmm 只是一个图形界面的工具集,并且它力争成为最好的 C++ 图形界面工具集。但这项任务没有涵盖通用的 C++ 数据结构、XML 解析器或是数据库访问的功能。甚至包括我们的信号(signal)/插槽(slots)系统都是一个独立的 (libsigc++) 库的一部分。但是,gtkmm 被设计为可以与所有其它 C++ 库一起很好的工作。

gnomemm 库涵盖了一部分上述的功能,但是它们不是使用 gtkmm 所必需的。

libsigc++

此外,一定不要忘记看看我们的兄弟库,glibmm (UTF8 字符串、线程等等) 和 libsigc++ 信号(signal)/插槽(slots)。

其它

也一定要去看看 Bakery,这是一个构建 gtkmm/gnomemm 应用程序的框架。它可以让用户使用 Document/View 构架。