gtkmm
gtkmm 是一个 GTK+ 的 C++ 封装,GTK+ 是一个用于创建图形用户界面的软件库。它使用 LGPL 协议,因此您可以使用 gtkmm 开发开放软件、自由软件,甚至商业非免费软件而不需支付任何版权费用。
gtkmm 曾经被称为 gtk--,那是因为 GTK+ 的名字中已经有了一个加号。但是,由于 -- 不容易被搜索引擎索引,所以项目名字就渐渐的变成了gtkmm,后来我们就一直使用这个名字。
- 1.2.1. 为什么要使用 gtkmm 而不是 GTK+?
- 1.2.2. gtkmm 对比 Qt
- 1.2.3. gtkmm 是一个封装
1.2.1. 为什么要使用 gtkmm 而不是 GTK+?
gtkmm 允许你使用常用的 C++ 技术来撰写代码,比如封装、继承和多态。作为一个 C++ 程序员,你可能已经意识到这会让代码更加清晰、更加良好的管理代码。
gtkmm 更加类型安全,因此编译器可以检测出一些 C 只能在运行时才能检测出来的错误。这种使用特定类型的方法同样使得 API 更加清晰,因为你只需要通过看一下函数声明就可以知道应该使用什么类型了。
可以使用继承来衍生新的部件。在 GTK+ 中使用 C 代码来衍生新部件是非常复杂的,并且很容易出错,因此几乎没有 C 的程序员这么做。作为 C++ 开发人员,你知道继承是一个基本的面向对象技术。
可以使用成员实例,简化了内存管理。所有的 GTK+ 的 C 部件都是使用指针进行操作的。作为 C++ 程序员,你知道指针应当尽量避免使用。
gtkmm 比 GTK+ 的代码更加简短,GTK+ 使用了大量带前缀的函数名以及大量的转型宏。
1.2.2. gtkmm 对比 Qt
Trolltech 公司的 Qt 是和 gtkmm 最相似的有竞争力的产品,所以应该对其进行一下讨论。
gtkmm 开发人员更倾向于使用 gtkmm 而不是 Qt,因为 gtkmm 的使用更加符合 C++ 的方式。Qt 是诞生自 C++ 及其库尚未标准化或尚未被大多数编译器所支持的年代。它重复了大量的现存于标准库中的东西,比如容器、类型信息等等。最重要的是,Trolltech 修改了 C++ 语言以提供信号的功能,这样 Qt 的类无法很容易的与非 Qt 类共同使用。gtkmm 则可以使用标准 C++ 提供信号功能,而无需修改 C++ 语言。请看常见问题以得到进一步的差异。