2013-03-25 217 views
1

在某些桌面客户端应用程序中使用gtkmm gui工具包是一个好主意吗?gtkmm桌面应用程序

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

+2

是的,这是一个官方支持的绑定(http://www.gtk.org/language-bindings.php)。 “inkscape”和“ardor”是用gtkmm 和Glade(也就是PyGTK)编写的着名应用程序,您可以快速构建原型应用程序。 – pce 2013-03-25 16:41:55

回答

1

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

但手册中描述的许多事情都不起作用!我实际上遇到了麻烦,同时压倒应该工作但没有工作的信号处理程序。也许你会看看[email protected]找出你可能会遇到什么样的问题:-)

从doxygen输入派生的文档似乎对我无用,因为函数主要是没有描述和参数名称,或者往往不是很清楚。

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

我决定给gtk +一个机会就是存在C++接口。我认为这会有助于在编译时获得错误,而不是像使用tcl/tk一样运行应用程序。但这并不总是与gtkmm一样。使用gtkmm,您还可以运行时运行时错误,因为所有字符串参数都将在运行时解析!这使得事情容易出错!

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

写一个GUI应用程序仍然是一个非常讨厌的工作!

+0

你是否建议使用gtk +替代gtkmm? – Yoh0xFF 2013-04-01 20:08:27

+0

Gtk +本身是面向对象的c代码,gtkmm只是c库的一个包装。我认为真的没有理由使用gtk + direct。从c编码类派生看起来很丑,在c中编写好的面向对象代码比在C++中困难得多。所以*我的建议是使用gtkmm。但有时候在c接口中查看包装代码的含义是有帮助的。 – Klaus 2013-04-01 20:24:36

+0

感谢您的回答。 – Yoh0xFF 2013-04-01 20:42:52

1

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

“Inkscape中”和“热情”是写在gtkmm的

是官方的GNOME绑定绑定遵循这保证了API的稳定性和基于时间的释放GNOME发布日程显着的应用程序。

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

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

随着Glade(和即PyGTK),你可以快速原型的应用程序。 使用Glade构建GUI非常简单,生成的UI是一个xml文件,不受编程语言的约束。

2

我用gtkmm编写专业应用程序,是的,你可以用它来进行真实世界的软件开发。但我也使用过C/GTK +和C++/Qt,我的观点是使用Gtkmm你有这样的感觉,即原始工具包是用于C语言的,并且移植到C++是可以的,但在很多情况下,你觉得C++功能可以被更好地使用。

对于比较:

如果你有GTK和gtkmm的之间做出选择去gtkmm的,即使你可能会发现自己被困在一些无据可查或支持功能。最终你总是设法找到一个解决方案(你可以检查源代码),而C++比c更好。

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