GTK+ 和 Qt 有什么区别?

编程语言和工具包是复杂的话题。 您可能已经设法使用计算机很长时间而没有考虑太多。

但是当您切换到 Linux 时,问题突然变得相关。 那是因为应用程序与桌面其余部分的集成程度通常归结为一个问题:它是用 GTK+ 还是用 Qt 制作的?

什么是 GTK+ 和 Qt?

GTK+ 和 Qt 是开发人员用来构建应用程序外观和感觉的工具包。 这些工具包提供您在使用应用程序时看到的按钮、工具栏、滑块和菜单。

图片来源: 维基共享资源

工具包可以节省开发人员的时间。 他们不必编写或设计每个按钮的大小、形状和外观,而可以让工具包来处理这项工作。 这使他们能够专注于应用程序提供的核心功能,例如编辑文档或播放音乐。

GTK+ 和 Qt 的历史

Haarvard Nord 和 Eirik Chambe-Eng 于 1991 年开始开发 Qt。这个名字发音为“cute”,是因为字母 Q 在 Haavard 的 Emacs 字体中的外观以及 Xt 之前使用的字母 t,即 X工具包已经在 Unix 桌面上使用。

Nord 和 Chambe-Eng 后来共同创立了 Quasar Technologies,后者更名为 Throll Tech,然后是 Throlltech,现在以与 Qt 公司不同的形式存在。

1995 年,Throl Tech 发布了一个适用于 Linux 的 Qt 版本的源代码。 但这不符合自由软件基金会对自由的定义,因为如果人们进行任何修改,则不允许重新分发代码。 直到 2000 年 Throlltech 才赋予用户自由编辑和重新分发代码的自由。

GTK+ 最初是由 Peter Mattis 创建的 GIMP 工具包,用于替代 GNU 图像处理程序中使用的现有接口。 重写后,该工具包成为 GTK+ 并于 1998 年发布。与 Qt 不同,人们从一开始就可以自由编辑、修改和共享 GTK+。

虽然 Qt 在某些方面是一个更通用和适应性更强的工具包,但在这些早期,一个围绕 GTK+ 整合的社区。 还值得注意的是,非营利性 GNOME 基金会现在维护 GTK+,而一家上市公司 The Qt Company 领导 Qt 的开发。 尽管如此,在这一点上,两个工具包都不比另一个“更自由”。

基于 GTK 的桌面和软件

如果您最近已经过渡到 Linux,那么您很有可能正在使用基于 GTK 的桌面。 这是因为许多最好的 Linux 桌面环境都使用 GTK+。

以 GNOME 为例,它是 Ubuntu 等知名且成熟的 Linux 操作系统的默认选项, Fedora, 和 Debian。 然后是 MATE 和 Xfce 等替代品,它们都提供更轻巧和更传统的界面。

让我们不要忘记elementaryOS,它是一个新来者,比起长期的Linux 用户,它更适合最近的切换者。

许多最流行的开源应用程序可以更好地与基于 GTK 的桌面集成。 这包括诸如 Firefox、Thunderbird、LibreOffice 和 GIMP。 不太出名的基于 GTK 的跨平台应用程序包括 AbiWord、Inkscape 和 Pidgin。

GTK+ 应用程序之间的多样性越来越大。 即使在其他基于 GTK 的桌面上,专为 GNOME 设计的软件也可能显得格格不入。 这是因为 GNOME 的人机界面设计指南不鼓励使用菜单栏并引入其他不太常见的更改。

还要知道许多适用于 elementOS 的应用程序不适用于其他桌面。

同时,大多数上述流行的跨平台 GTK+ 工具仍然相对于桌面不可知(这恰好意味着它们在 GNOME 和 elementOS 上看起来格格不入,因为两者都强调具有独特的设计)。

基于 Qt 的桌面和软件

KDE Plasma 桌面是最古老的全功能 Linux 桌面环境。 如果 Qt 在 1996 年完全开放,GNOME 甚至可能不存在。 二十多年后,KDE 社区继续提供功能最丰富的 Linux 桌面。

由于很少有其他基于 Qt 的桌面,许多 Qt 应用程序是专门为 Plasma 桌面设计的,甚至可能依赖于各种 KDE 组件。 因此,KDE 软件集成是所有桌面中最好的。

您可以进行影响每个应用程序的界面调整,或者您可以特别调整一个应用程序,直到感觉舒适为止。 也就是说,Plasma 桌面并不是唯一使用 Qt 的桌面。 LXQt 是一种专注于更轻、更简单的替代方案。

虽然一些 KDE 软件是跨平台的,但这些程序在 Linux 社区之外并不为人所知。 最显着的例外可能是 Krita 和 digiKam。

并非所有 Qt 软件都是专门为 KDE 设计的。 此类程序包括 VLC 媒体播放器和 Scribus 桌面出版应用程序。

差异有多大?

GTK+ 和 Qt 之间存在技术差异,但与我们其他人相比,开发人员对其中大多数更感兴趣。 如今,这些限制比以前更难注意到。 由于出色的主题,许多 GTK+ 应用程序现在在基于 Qt 的 Plasma 桌面上看起来就像在家一样。 其中一些应用程序在 Plasma 上看起来比在 GNOME 中更适合。

同时,您还可以在基于 GTK 的桌面上安装 Scribus 或 VLC,而无需意识到幕后存在差异。

但是偶尔会出现小的不兼容性。 当您寻找要打开的文件时,应用程序可能会打开不同的文件选择器窗口。 对系统主题的调整可能适用于某些应用程序,但不适用于其他应用程序。 您对桌面的摆弄越多,可能会出现越多的怪癖。

最终,选择 GTK+ 还是 Qt 的问题实际上归结为选择您最喜欢的桌面界面和您最喜欢的 Linux 应用程序。