3

将 gtkmm gui 工具包用于某些桌面客户端应用程序是个好主意吗?

这个工具包稳定吗?是否有足够的在线文档?

4

3 回答 3

3

我使用 gtkmm 编写专业应用程序,是的,您可以将它用于现实世界的软件开发。

但我也使用了 C/GTK+ 和 C++/Qt,我的看法是,使用 Gtkmm 你会觉得原来的工具包是要在 C 中使用的,并且移植到 C++ 是可以的,但在很多情况下你觉得 C++ 的特性可以已经被更好地使用了。

比较:

如果您必须在 Gtk 和 Gtkmm 之间进行选择,请选择 Gtkmm,即使您可能会发现自己陷入了一些没有充分记录或支持的功能。最终你总是设法找到一个解决方案(你可以检查源代码)并且 c++ 比 c 更好。

如果您必须在 Gtkmm 和 Qt 之间进行选择,请选择 Qt。两者之间存在巨大差距。不仅在工具包本身中,而且在文档和编写应用程序时需要的所有其他类中。

于 2015-04-21T08:07:03.337 回答
2

我在两个月前开始使用 gtkmm。我实际上移植了一个 tcl/tk 应用程序,我感觉很难让这些东西运行起来。我发现的唯一有用的文档是https://developer.gnome.org/gtkmm-tutorial/3.4/

但是手册中描述的许多事情都不起作用!实际上,我在覆盖应该工作但没有工作的信号处理程序时遇到了麻烦。也许您会查看 gtkmm-list@gnome.org 以了解您可能会遇到什么样的问题:-)

从 doxygen 输入派生的文档对我来说似乎没用,因为这些函数大多没有描述,参数名称或者对我来说通常不是很清楚。

与 tcl/tk 相比,界面看起来不一致。有时参数必须由文本提供,有时由指针提供,有时由本机值本身提供。特别是菜单对于基于字符串的配置非常“神秘”。将参数作为文本的需要非常不方便!您必须使用 ostrstream 将参数转换为文本,并有时自己将参数从文本解析为实际值。

我决定给gtk+一个机会是c++接口的存在。我认为在编译时获取错误会很有帮助,而不是在运行应用程序时(如使用 tcl/tk)。但 gtkmm 并非总是如此。使用 gtkmm 您还可能遇到运行时错误,因为所有字符串参数都将在运行时进行解析!这使得事情容易出错!

也许我会重新开始,给 Qt 一个机会。但是对它的第一个看法表明,这似乎并不是真的更好:-)

编写 gui 应用程序仍然是一项非常烦人的工作!

于 2013-03-29T13:56:28.783 回答
1

gtkmm是官方支持的 GTK 绑定 (gtk.org/language-bindings.php)。

“inkscape”和“ardour”是用 gtkmm 编写的著名应用程序

作为官方 GNOME 绑定的绑定遵循 GNOME 发布计划,这保证了 AP​​I 稳定性和基于时间的发布。

如果您想用 C 编写应用程序,请使用 GTK+(和 GLib)。

您可以在http://www.gtkmm.org/ ( https://developer.gnome.org/gtkmm-tutorial/ )找到文档的链接。

使用Glade(和即 PyGTK),您可以快速原型化您的应用程序。使用 Glade 构建 GUI 很容易,生成的 UI 是一个 xml 文件,它不受编程语言的约束。

于 2013-03-25T16:59:44.793 回答