许多软件包都有 GTK 和 QT 版本。
- 他们之间有什么区别?
- 性能或工作方法有什么区别吗?
答案1
一般来说,从用户角度来看,差异应该纯粹是表面上的。 Qt 和 GTK 独立设置主题(例如通过qtconfig
或gtk-chtheme
),但这在某些桌面环境中是协调一致的。
GNU/Linux 往往比 Qt 更面向 GTK,因为前者更常用,所以当有选择时您可能会更喜欢它; KDE 是一个例外,它使用 Qt 作为自己的应用程序——尽管这些因素都不是非常重要。
更重要的问题是在 RAM 非常有限的情况下(例如 < 1/4 GB);在这种情况下,您可能希望系统专门使用 GTK或者Qt,但不是两者。然而,在大多数具有千兆字节内存的现代台式机上,这并不是一个问题——广泛使用两者可能会花费您额外的(大胆猜测)50-100 MB。
请注意,GTK(2 和 3)和 Qt(3 和 4)的不同版本仍然广泛使用,但不向后兼容(因此 Qt 3 应用程序无法使用 Qt 4 库)。然而,两个版本可能同时存在于一个系统上,最严重的后果是可能出现混乱和内存膨胀。
答案2
不,此类程序的内部结构没有区别。 GTK 和 Qt 是用户界面工具包和框架。它们是开发人员用来设计图形界面的库。
当编写图形(GUI)程序时,首先开发其核心内部结构。这就是程序运行的原因。你从来没有看核心,它们只是在后台执行。在此核心之上,设计了用户界面(UI)。
现在,开发人员可以从头开始设计完整的界面,或者重复使用其他人的设计。重用设计有一个很大的优势。它允许计算机中的所有程序看起来相似。因此,他们使用 GUI 工具包。 GTK 和 Qt 是两个极其常见的 GUI 工具包。
GTK 是 GNOME 的标准工具包,而 Qt 是 KDE 使用的。从用户的角度来看,只是外观有所不同。该计划本质上保持不变。
答案3
另一个需要考虑的重要方面是 Qt 许可链接到他们的许可证披露它被明确设置为大多数非营利项目免费提供,但商业关系是可能的,并且可能对此情况有限制。而 GTK,明确声明即使在所有权应用GTK声明:
Are there any licensing restrictions?
GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
复杂 GUI 开发的一个关键方面将依赖 GLADE 作为设计套件,以及它是否适合您的方法林间空地链接。它的目标是跨平台,但可能不像 Qt 那样得到广泛的跨平台支持。
答案4
它们如何比较它们各自的对象模型,以及它们遵循 C++ 标准的程度如何——根据我有限的经验,QT 的代码生成器似乎有点老套,并用它们自己的功能等效的类重新发明了轮子。字符串和类。简而言之,QT 似乎有更多的口哨声和铃声,我相信很多人都觉得很有用,但它似乎也有一种沉重、专有的感觉。正如我所说,我对它的经验有限(对 Gtk 的经验更少)。我想了解一些关于它们今天如何比较的意见——从开发人员的角度来看,他们倾向于尝试使用 C++ 标准(如 STL、C++ 字符串、线程等)的事物的通用方法