GUI开发:Qt vs GTK

我是新来的graphics用户界面编程。 我主要用C ++编写代码,我需要我的代码和GUI独立于操作系统,所以在做了一些研究之后,我无法在Qt或GTK之间做出决定。 我读过GTK更高效的内存,但也有一些网站表示它是在Qt 4之前。另外Qt有Qt Creator IDE,我认为它是C ++的一个很棒的IDE。 ¿谁都知道每个人的优点和缺点? 谢谢

耶,另一个Lib_One vs Lib_两种问题。 我喜欢回答这些。

要求

首先,没有完美的魔法工具箱可以满足每个人的需求。 你的select应该基于你正在做的事情

  • 你只是想要一个GUI工具包? 还是你想要一个完整的应用程序开发框架与graphics,声音,图像IO等API?
  • 你是针对一个特定的平台?
  • 你需要额外的眼睛糖果吗?
  • 你的客户想要什么?
  • 你的目标是embedded式系统还是PC?

Gui工具包

GTK +和Qt都是相当成熟的面向对象的GUI工具包。 他们都是开源的,跨平台的,拥有大量的活跃社区。 GTK +被用作GNOME,LXDE和Xfce桌面环境的标准工具包,而Qt则用于KDE。 两者都用于开发专业应用程序,并经过时间考验。

跨平台兼容性

这两个工具包都支持几乎所有的主streamPC平台。

平台支持的平台:

  • Windows XP
  • Windows Vista
  • Windows 7的
  • Mac OS X
  • Linux / Unix

另外Qt还支持:

  • Symbian S60
  • Windows CE
  • WebOS的
  • Android的
  • Ubuntu手机

性能

这是严重的争议。 GTK +的传播者指向Qt应用程序的高内存消耗,而Qt的粉丝嘲笑GTK运行时的启动时间。 但总的来说,没有太大的区别。 现代个人电脑都运行得足够快。

专有使用和语言绑定

GTK +是LGPL许可的,所以它可以用于专有应用程序。 Qt是LGPL,GPL和专有许可证的三重许可。 如果您使用LGPL或购买专有许可证,则可以将Qt用于专有应用程序。

这两个工具包都具有所有stream行语言的绑定。 值得注意的绑定包括GTK#,GTK +的C#绑定,已经得到Mono项目的认可。 和Qt-Jambi,Qt绑定的Java,这是积极更新。

资源

这两个工具包都被广泛logging。 GTK +有自己的文档(GTK-Doc),Qt由诺基亚logging。 不过Qt在这方面可能略有优势,因为它背后拥有庞大的公司(诺基亚)庞大的资源和人力,而GTK +仅由其贡献者logging。 在互联网上的很多地方都有教程。 我更喜欢ZetCode 。

结论

正如你所看到的,他们两个都或多或less还不够好。 这个select实际上取决于我之前提出的观点:你的要求是什么?