GTK+可以和c++一起使用吗?

Is it possible to use GTK+ with C++?

本文关键字:一起 c++ GTK+      更新时间:2023-10-16

我正在选择一个GUI工具包来学习c++。我在网上做了一些搜索,大多数人建议用GTKmm代替GTK+。尽管如此,我还是看到过一些使用GTK+开发的c++应用程序。

因此,我只想知道具体原因:
1. 为什么GTKmm更适合c++ ?
2. 如果我将GTK+用于c++ 应用程序而不是GTKmm,我将面临哪些限制 ?

  • 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