是否可以使用 GTK+与 C++?

发布于 2024-10-31 15:01:15 字数 283 浏览 1 评论 0原文

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

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

I am choosing a GUI toolkit for C++ to learn. I have done some searching online and most people suggest GTKmm for C++ over GTK+. Despite that fact, I have seen some C++ applications made using GTK+.

Therefore, I just want to know the specific reasons for this:
1. Why GTKmm is preferred for C++?
2. What are the limitations I will face if I use GTK+ for C++ applications instead of GTKmm?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

手长情犹 2024-11-07 15:01:15
  • 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

  • gtkmm allows you to write code using normal C++ techniques such as encapsulation, derivation, and polymorphism. As a C++ programmer you probably already realize that this leads to clearer and better organised code.
  • gtkmm is more type-safe, so the compiler can detect errors that would only be detected at run time when using C. This use of specific types also makes the API clearer because you can see what types should be used just by looking at a method's declaration.
  • Inheritance can be used to derive new widgets. The derivation of new widgets in GTK+ C code is so complicated and error prone that almost no C coders do it. As a C++ developer you know that derivation is an essential Object Orientated technique.
  • Member instances can be used, simplifying memory management. All GTK+ C widgets are dealt with by use of pointers. As a C++ coder you know that pointers should be avoided where possible.
  • Less code. The GTK+ C object model uses prefixed function names and cast macros. For instance: gtk_button_set_text(GTK_BUTTON(button), "sometext"); gtkmm C++ code is shorter and clearer. For instance: button.set_text("sometext");
  • There's no need to worry about GTK+'s inconsistent reference-counting policy.

Source: http://live.gnome.org/gtkmm/FAQ

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文