GTK+ 和 Qt 有什么区别?

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

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

什么是 GTK+ 和 Qt?

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

图片来源:维基百科

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

GTK+ 和 Qt 的历史

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

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

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

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

虽然 Qt 在某些方面是一个更通用和适应性更强的工具包,但在早期的几年里,一个社区围绕 GTK+ 进行了整合。 还值得注意的是,非营利性 GNOME 基金会现在维护 GTK+,而一家上市公司 Qt 公司领导 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+ 应用程序之间的多样性越来越高。 专为 GNOME 设计的软件即使在其他基于 GTK 的桌面上也可能显得格格不入。 这是因为 GNOME 的人机界面设计指南不鼓励使用菜单栏并引入了其他不太常见的更改。

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

同时,大多数上述流行的跨平台 GTK+ 工具仍然与桌面无关(这恰好意味着它们在 GNOME 和elementaryOS 上看起来不合适,因为两者都强调具有独特的设计)。

基于 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 应用程序。