GTK和QT应用程序之间有什么区别?


54

GTK和QT版本都提供许多软件包。

  • 它们之间有什么区别?
  • 在性能或工作方法上有什么区别吗?

Answers:


41

通常,从用户角度来看,差异应该纯粹是美观的。Qt和GTK独立设置了主题(通过例如qtconfiggtk-chtheme),但这在某些桌面环境中是一致的。

GNU / Linux倾向于比Qt更面向GTK,因为前者是更常用的,因此您可以在选择时更喜欢它。KDE例外,它将使用Qt用于其自己的应用程序-尽管这些因素都不是很重要。

一个更大的问题将是在内存非常有限的情况下(例如,小于1/4 GB);在这种情况下,您可能希望系统仅使用GTK Qt,但不能同时使用两者。但是,在大多数具有GB内存的现代台式机上,这不是问题-广泛使用它们可能会使您额外花费50-100 MB(很自然的猜测)。


请注意,GTK(2和3)和Qt(3和4)还有其他版本仍被广泛使用,但不向后兼容(因此Qt 3应用程序不能使用Qt 4库)。但是,这两个版本可能同时存在于一个系统上,最严重的后果是可能造成混乱,并导致更多的内存膨胀。


8
我将非常有兴趣知道您如何得出Linux更面向GTK的结论?Linux通常仅表示Linux内核,因为它是OS内核,而不是GUI用户空间程序,所以通常对任何一个工具包都没有偏见。如果您打算暗示GNU / Linux为操作系统,我仍然会质疑您的主张。说GNU / Linux更加面向GTK是因为Ubuntu是最受欢迎的发行版,就像克里斯蒂安诺·罗纳尔多(Christiano Ronaldo)是最好的运动员一样,因为足球是世界上玩得最多的游戏。(我也
对此

10
@darnir我将放入“ GNU”限定词,因为我确实是从通俗的角度讲操作系统。我会捍卫自己的论点,那就是它比Qt更面向GTK:GTK(最初代表“ GIMP Tool Kit”,而GIMP = GNU Image Manipulation Program),GIMP和GNOME都是GNU项目,并且是核心部分他们对操作系统的(用户群)愿景,与内核配对就是历史上的“ linux”。因此,GTK 主要是针对Linux 开发的,它也是本机C(与Qt的C ++相比),而Qt更像是一个真正的跨平台实体。
goldilocks 2014年

1
尽管我会就GTK的历史和词源同意您的观点,但这并不意味着GNU / Linux是面向GTK的。实际上,事实恰恰相反,您的陈述也证实了这一点。GTK是 Linux 设计,并非相反。我为自己的论文辩护说,Linux作为内核,而GNU / Linux作为操作系统对任何GUI工具包都是不可知的。由于Ubuntu对GTK的高度依赖,因此GTK通常比Qt更为常见。另外,它减少了系统资源的事实也有所帮助。
darnir 2014年

3
@darnir是的,该操作系统本质上与WRT无关,它是GUI工具包-我不会声称GTK是“本机”工具包,等等。但是您错了为什么它“经常在野外看到的更多” – GTK是Ubuntu甚至早在Ubuntu出现之前,就已经是该平台上使用最广泛的工具包,这因为上述关系与所有发行版广泛使用的其他基本部分的关系。这就是为什么大多数 linux GUI应用程序已经是GTK应用程序的原因,并且为什么在没有更多上下文可以继续的情况下,告诉新用户“您最好也选择那个”,而其他条件都一样的原因。但这并不重要。
goldilocks 2014年

使用多个不同的工具箱也将需要更多的存储空间。我认为这不会影响性能,只是影响其他事情的空间。
DaimyoKirby,2014年

19

不,此类程序的内部结构没有区别。GTK和Qt是用户界面工具包和框架。它们是开发人员用来设计图形界面的库。

编写图形(GUI)程序时,首先要开发其核心内部组件。这就是使程序运行的原因。您永远不会看到核心,它们只是在后台执行。在此核心之上,设计了一个用户界面(UI)。

现在,开发人员可以从头开始设计完整的界面,或者重复使用其他人的设计。重用设计具有主要优势。它使计算机中的所有程序看起来都相似。因此,他们使用GUI工具箱。GTK和Qt是两个极为常见的GUI工具箱。

GTK是GNOME的标准工具包,而KDE使用Qt。从用户的角度来看,只是外观有所不同。该程序在本质上保持不变。


4

要考虑的另一个重要方面是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作为设计套件,以及它是否适合您的方法Glade链接。它旨在成为跨平台,但可能不像Qt那样得到广泛支持。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.