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

标签 c++ c gtk gtkmm

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

因此,我只想知 Prop 体的原因:
1. 为什么 GTKmm 是 C++ 的首选?
2. 如果我使用 GTK+ for 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

关于c++ - 是否可以将 GTK+ 与 C++ 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616386/

相关文章:

c - 静态和内联

python - 如何使用 Python GTK3 (gi.repository) gdk_event_get_scroll_deltas() 方法

python - 无法从 gi.repository 导入模块

c++ - Qt 应用程序无法在 Windows 上启动

c++ - 通过引用。 C++ 中的函数。输出流

android - 使用lame作为库

c - 如何在 GTK 中进行按钮标签翻译?

c++ - 如何在用户模式应用程序 C++ 中访问 AVStream 扩展相机控制属性

c++ - 如何在庞大的代码库中找到悬空的命名空间或预处理器指令

c - 删除按键延迟