代码之家  ›  专栏  ›  技术社区  ›  unixman83

GTK+和QT之间的区别?

  •  2
  • unixman83  · 技术社区  · 14 年前

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

    具体来说,我需要知道更细微的差别。 语言中立,Windows/Linux中立。请再细点。。。

    1. 怎么 本地的 从窗口管理器的角度来看,窗口小部件/控件是否属于窗口管理器? 示例:如果它是文本控件,它会处理发送给它的WM_命令或EM_setel消息吗?如果没有,第三方应用程序/屏幕阅读器如何与控件/小部件交互?
    2. 一个工具包中有高级小部件,而另一个工具包中没有? 附加组件很好描述。
    3. 主题化的质量是什么 多媒体/特效 立场? 类似于powerpoint风格的特殊效果,如窗口小部件/停靠的淡入。为这些场景编写代码的容易程度如何?
    5 回复  |  直到 14 年前
        1
  •  4
  •   Luper Rouch François Lagunas    14 年前

    注意 :我可能对Qt有偏见,因为我从来没有认真使用过GTK。

    • Qt的图形视图和场景系统非常棒,GTK只有低级Cairo。
    • 使用Qt编写自定义小部件似乎更容易,这可能是因为OO设计的缘故。我不知道哪个API有更“高级”的widget,但是基本的widget对于大多数有点定制的应用程序来说已经足够了。
    • 如果你想为你的应用程序提供一个完全自定义的显示和所有特效,你可以根据图形视图/场景轻松编写一个。Qt4.7还增加了 Qt Quick 为了设计漂亮的界面,我还没有机会测试它,但它看起来很酷。

    总的来说,我认为这两个框架都很好,为任何应用程序都提供了足够的支持,但是对于Qt来说,当你不得不使用第三方添加或重新设计轮子来完成与GTK相同的工作时,你可以把所有东西都放在一个很好的包中。

        2
  •  3
  •   Vitor Py    14 年前

    虽然你没有问这个问题,但值得指出的是QT和GTK+之间的不同哲学(或者GTKMM,C++版本的GTK+)。

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

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

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

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

    两者都有高质量的表现和效果。没有意义的区别。我更喜欢Gtk+的外观,而不是Qt,但这只是个人品味的问题。

        3
  •  1
  •   smilingthax    14 年前

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

    • 我觉得很难 在Gtk+中自定义小部件,例如I 想要小部件X的行为,但是 需要调整视线 常规样式设置。
    • 我不喜欢Qt's moc ,但这更像是 私人物品。
    • 我也会强烈地 推荐Gtkmm(C++包装器) 在普通Gtk+上。
        4
  •  0
  •   mhd    14 年前

    抱歉,如果这个偏向qt和shallow

    • Qt有许多令人眼花缭乱的效果(不知道gtkmm)。
    • Qt有Qtconcurrent,用于多线程的高级api。可能更有可读性 比Qthread Qmutex blablabla。。。
    • 基于你的问题我认为你想把桌面应用整合到www上, 所以你自己比较一下 qtwebkit公司 , gtkhtml公司 gtkwebkit公司 哪个更适合你。
        5
  •  0
  •   tshepang Arrie    12 年前

    我把范围缩小到 虚跑者 GTK公司+ .

    原因如下:

    • 我需要尽快熟悉内部结构。QT的易用性解决方案让我很难做到这一点。
    • QT很大!在3Ghz P4上运行超过4小时后,我停止了自定义编译! 公平地说,QT提供了许多预编译的二进制文件
    • QT的开箱即用主题看起来太“专业”。我需要一些酷的东西,GTK+有一些整洁的主题,我可以修改。
    • 我不需要/不想使用网络、文件管理、多媒体、webkit或任何东西的框架 此外 其他应用程序的图形用户界面前端。

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