是否可以将GTK +与C ++一起使用?

时间:2011-04-11 03:00:34

标签: c++ c gtk gtkmm

我正在为C ++选择一个GUI工具包来学习。我已经在网上进行了一些搜索,大多数人建议使用GTK + for GTK +。尽管如此,我已经看到一些使用GTK +制作的C ++应用程序。

因此,我只想知道具体原因:
1. 为什么GTKmm是C ++的首选?
2.如果我使用 GTK + for C ++ 应用程序而不是GTKmm,我会遇到什么限制

1 个答案:

答案 0 :(得分:17)

  • gtkmm允许您使用常规C ++技术编写代码,例如封装,派生和多态。作为一名C ++程序员,您可能已经意识到这会带来更清晰,更有条理的代码。
  • gtkmm更加类型安全,因此编译器可以检测在使用C时仅在运行时检测到的错误。特定类型的使用也使API更加清晰,因为您可以通过查看看看应该使用哪些类型在方法的声明中。
  • 继承可用于派生新的小部件。在GTK + C代码中推导新的小部件是如此复杂和容易出错,几乎没有C编码器这样做。作为C ++开发人员,您知道派生是一种必不可少的面向对象技术。
  • 可以使用成员实例,简化内存管理。所有GTK + C小部件都通过使用指针来处理。作为C ++编码器,你知道应尽可能避免使用指针。
  • 更少的代码。 GTK + C对象模型使用前缀函数名称和转换宏。例如:gtk_button_set_text(GTK_BUTTON(button), "sometext"); gtkmm C ++代码更短更清晰。例如:button.set_text("sometext");
  • 没有必要担心GTK +不一致的引用计数策略。

来源:http://live.gnome.org/gtkmm/FAQ