GTK +和QT之间的重要区别?

时间:2010-11-13 12:02:39

标签: user-interface qt gtk

QT和GTK +之间的细微差别是什么?

具体来说,我需要知道更好的差异。 语言中立,Windows / Linux中立。请更精细点......

  1. native 如何成为窗口管理器的小部件/控件,从它的角度来看?示例:如果它是文本控件,它会处理:WM_COMMAND还是EM_SETSEL消息发送给它?如果没有,第三方应用程序/屏幕阅读器如何与控件/小部件交互?
  2. 高级小部件在一个工具包中可用而在另一个工具包中不可用?可以使用附加组件进行描述。
  3. 多媒体/特效角度来看,主题的质量是什么?像powerpoint样式特效,例如小部件/底座的淡入效果。这些场景编码的简易性是什么?

5 个答案:

答案 0 :(得分:4)

注意:我可能偏向于Qt,因为我从未认真对待过GTK。

  • Qt的图形视图和场景系统非常棒,GTK只有低级别的开罗。
  • 使用Qt编写自定义小部件似乎更容易,可能是因为OO设计。我不知道哪个API有更多“高级”小部件,但基本的小部件可能足以满足大多数应用程序的需要。
  • 如果您希望为具有特殊效果的应用程序提供完全自定义的显示,您可以根据图形视图/场景轻松编写一个。 Qt 4.7还增加Qt Quick来设计精美的界面,我没有机会测试它,但它看起来很酷。

总的来说,我认为两者都是很棒的框架,并且可以为任何应用程序提供足够的功能,但是使用Qt,你可以获得一个不错的包,当你必须使用第三方添加或重新发明轮子以完成GTK相同的工作。< / p>

答案 1 :(得分:3)

虽然你没有问这个,但值得指出Qt和Gtk +(或Gtkmm,Gtk +的C ++版本)之间的不同哲学。

Qt是一个完整的应用程序开发工具包。它包括XML解析器,并发框架等。 Gtkmm 。来自gtkmm文档:

  

gtkmm是一个GUI工具包而且没什么   更多,并努力做到最好   C ++ GUI工具包。这项任务没有   涵盖通用C ++数据结构,   XML解析器或数据库访问。

可能更公平的比较是在Qt和Gtkmm +一组GNOME库之间。

对于高级小部件,GNOME库非常好 - 例如,使用libgoffice。但它没有初学者友好的文档,您最终将不得不在邮件列表或IRC频道中提问。 Qt也非常好,有一个非常友好的文档。在我看来,质量和可用性是相同的,但Qt通常有更多的文档,或者至少以对“局外人”更友好的方式记录。

两者都具有高质量的演示和效果。没有意义的区别。我比Gt更喜欢Gtk +外观,但这只是个人品味的问题。

答案 2 :(得分:1)

不是一个完整的答案,但是:

  • 我觉得很难 在Gtk +中自定义小部件,例如一世 想要小部件X的行为,但是 需要调整超越的外观 通常的风格设置。
  • OTOH我不喜欢Qt的moc,但这更像是一个 个人的事。
  • 我也很强烈 推荐Gtkmm(C ++包装器) 在普通的Gtk +。

答案 3 :(得分:0)

对不起,如果这个偏向qt和浅

  • Qt有许多eyecandy效果(不知道gtkmm)。
  • Qt具有多线程的Qtconcurrent,更高级别的api。可能更具可读性 比Qthread Qmutex blablabla ...
  • 根据您的问题,我认为您希望将桌面应用程序集成到www, 所以,只需在 qtwebkit gtkhtml gtkwebkit 之间进行比较,哪一个可能更适合您。

答案 4 :(得分:0)

我已将其缩小为 XULRunner GTK +

原因如下:

  • 我需要很快熟悉内部。 QT让我很难对他们易于使用的解决方案有所了解。
  • QT太棒了!在我的3Ghz P4上运行超过4小时后,我停止了自定义编译! 公平地说,QT提供了许多预编译的二进制文件
  • QT的开箱即用主题看起来过于'专业'。我需要一些很酷的东西,GTK +有一些我可以修改的简洁主题。
  • 我不需要/想要使用该框架进行网络,文件管理,多媒体,webkit或任何以及其他应用程序的GUI前端。

请注意,Qt中的许可证是LGPL,这对许多商业项目来说还不够好。对于GTK +也是如此,但至少你可以支付在商业项目中合法使用Qt。