23

我想知道如果我需要在 WIN 和 Linux 这两个平台上使用该软件,我应该考虑哪一个,为什么?

4

10 回答 10

24

打包 GTK 及其在 Windows 上的依赖项本身就是一个全职项目。Qt 更容易分发,因为它没有 Windows 不附带的依赖项。

Qt 从一开始就是跨平台的。GTK 并不总是跨平台的。这样的基本决定塑造了整体设计,在我看来应该在编写任何代码之前做出。

我会发表更多评论,但我会陷入猜测,以上两件事我肯定知道。

于 2008-10-14T15:07:47.480 回答
14

两者都是很好的工具包,各有优缺点。

一个区别是实现语言。Qt 在 C++ 中,而 GTK+ 在 C 中。但是 GTK+ 具有许多其他语言(perl、python、C++、.NET 等)的绑定,所以这不是一个大问题。

Qt 的一个优点是它提供了更广泛的内置功能(xml、数据库访问、网络编程、openGL 等)。GTK+ 基本上所有这些东西都在它的轨道内(例如 libxml2、librsvg、libsoup、libgda 等),但它们不像 Qt 那样是一个单一的连贯包。

我个人的建议是使用gtkmm,这是 GTK+ 的 C++ 绑定。它提供了一种更舒适的面向对象的编程语言,并且提供了与使用 C 语言的 GTK+ 几乎相同的本机性能。(免责声明:我为 gtkmm 做出了贡献)。

于 2008-10-14T01:27:36.853 回答
5

GTK+ 您几乎可以在所有编程语言中使用,包括 C++(使用 gtkmm)、C(gtk+)、C#(使用 Gtk#)、Python(PyGtk)。在 GTK 背后,您拥有 Mono Framework,它是用于跨平台目的的 .NET Framework 的出色实现。如果你想使用 Gtk#,你有一个很棒的 IDE (MonoDevelop) 和一个非常强大的 gui 设计器。您可以查看 www.mono-project.org。但仍然取决于您要构建什么,您只是在寻找 gui 工具包,还是整个框架?信号/插槽背后的逻辑在 Gtk+ 和 Qt 中是相同的,但是如果您使用 Gtk#,它们会在委托/事件范式中进行转换。

于 2008-10-14T00:55:06.420 回答
5

我的 0.02 美元:

在过去的 4 年里,我断断续续地使用 Qt,它是我尝试过的任何工具(Win32、MFC、Borland、Java、GTK)中最喜欢的工具包。我用了几个星期的 GTK 来试用它,但并不喜欢它。主要是因为我认为在 PC 上的 GUI 应用程序中使用 C 而不是 C++ 很尴尬……我也做嵌入式工作,而且我永远不会在 8051 上使用 C++,但对于大型 GUI 应用程序我更喜欢它. 如果您要尝试 GTK,我建议您查看GTKmm,尽管我自己从未使用过它。

于 2008-10-14T01:00:23.697 回答
4

你也可以考虑 wxWidgets。我从来没有使用过它们中的任何一个,但是当我查看跨平台工具包时,它是我决定尝试的。

于 2008-10-14T01:03:37.743 回答
3

它们都是很好的工具包。我会根据许可做出决定。如果您在商业产品中使用 Qt,而 GTK 不需要,您需要为许可证付费。

于 2008-10-14T00:46:13.787 回答
3

支持 Qt 的另外三点:

  1. 您的项目不必GPL;Qt GPL Exception中还有许多其他开源许可证,包括 BSD 和 LGPL。
  2. Qt 在 Windows 上的默认主题在融入方面比 GTK 的 Wimp 主题要好得多。
  3. 如果您以后想支持 Mac,那么使用 Qt 会更轻松。
于 2008-10-15T00:40:07.683 回答
3

我更喜欢Qt。与今天一样,Qt 在更宽松的 LGPL 许可下是开源和免费的。Qt 更好地移植到 Windows 上,并且看起来比 GTK 更原生。例如,Windows 上的 Gimp 看起来很奇怪,因为它的大多数对话框都不是 Windows 对话框。Qt 可以使用像 Open/Save 这样的原生 Window 对话框,这使它作为一个框架感觉更好。是的,Qt 是一个框架,而不仅仅是一个 GUI Widget。不,我不是在这里宣传 Qt,因为从开发的角度来看,Qt 对于 Windows 用户来说有些陌生,例如,Qt 是基于布局的,而 MFC / .NET 是基于锚的,Qt 的布局管理器有时很奇怪。但是如果我必须在 GTK 和 Qt 之间进行选择,我会选择 Qt。另外,现在,Qt 带有非常好的 IDE,Qt Creator,它是我现在所有类型项目的默认 C/C++ IDE(因为 Qt Creator 可以这样使用)。

于 2012-04-27T00:10:14.327 回答
2

Qt 5.0 赢得了这场战争。我不是 C++ 的忠实粉丝(我更喜欢普通的旧 C),但我必须承认 Qt 框架很棒。尝试使用 GTK 编写一个在 OSX、Linux、Windows(以及很快的 iOS 和 Android)上运行的具有原生外观和感觉的 GUI 程序......祝你好运!

于 2013-01-25T23:06:02.703 回答
0

我推荐使用 Qt,因为:

  • 它是跨平台的,并且涵盖了广泛的操作系统(包括移动)
  • 它是开源的,并且在变得更好时速度很快
  • 它有一个不错的 GUI 设计器和一个非常强大的 IDE(Qt Creator)
  • API设计优秀且易于使用
  • 它有一个很好的文档,易于阅读
  • 它具有 Qt 翻译系统,使您能够拥有多语言应用程序
  • 小部件根据布局调整自身大小的 GUI 布局系统使一切变得更加容易
  • QML 使您能够创建具有出色图形和动画的出色 GUI
  • 它对网络和连接(socket,SSL,www,IPC,...)有很好的支持
  • 它有用于测试代码的 QTestLib
  • 如果您不想使用 C++,它有很多语言绑定
于 2015-01-21T16:51:40.253 回答