问题

是什么让 Ubuntu 选用 Qt 而不是 GTK?

回答


Ubuntu 作为一款基于 Linux 的开源操作系统,其桌面环境和图形库的选择主要受到历史发展、技术特性、社区生态以及用户需求的影响。虽然 Ubuntu 默认使用的是 GNOME 桌面环境,而 GNOME 的核心图形库是 GTK+(Gtk+),但 Qt 在 Ubuntu 中的使用并非作为桌面环境的主图形库,而是作为某些应用程序或组件的开发框架。以下是详细分析:



1. Ubuntu 默认桌面环境与图形库
GNOME 桌面环境:Ubuntu 的默认桌面环境是 GNOME,而 GNOME 的核心图形库是 GTK+(GNU Toolkit),这是 GNOME 的核心组件。
GTK+ 的优势:
与 GNOME 深度集成,提供统一的 UI 风格。
社区支持广泛,开发资源丰富。
与 Ubuntu 的核心开发团队(如 Canonical)有紧密联系。

Qt 的使用场景:
非桌面环境:Qt 通常用于开发跨平台的应用程序(如 KDE 桌面环境、Qt Creator、Qt 软件等),但这些不是 Ubuntu 的默认桌面环境。
Ubuntu 的某些组件:Ubuntu 的某些工具(如 `qemu`、`libqt5` 等)可能依赖 Qt,但这与桌面环境无关。



2. 历史与技术选择
GTK+ 的历史地位:
GTK+ 由 GNOME 项目维护,是 Linux 桌面环境的主流图形库之一。
Ubuntu 从早期版本(如 6.04 Dapper)开始就采用 GNOME 作为桌面环境,因此 GTK+ 成为了 Ubuntu 的标准图形库。
Qt 的跨平台优势:
Qt 是一个跨平台的 C++ 图形库,支持多种操作系统(Windows、macOS、Linux 等),适合开发需要跨平台支持的应用程序。
Qt 的 UI 组件更复杂,适合需要高度定制化或现代 UI 的应用(如 KDE 桌面环境)。



3. Ubuntu 的开源生态与社区
GNOME 与 Qt 的关系:
GNOME 和 KDE 是两个独立的桌面环境项目,其中 KDE 使用 Qt 作为图形库,而 GNOME 使用 GTK+。
Ubuntu 的开发者团队(Canonical)更倾向于支持 GNOME,因此选择 GTK+ 作为默认图形库。
Qt 在 Ubuntu 中的角色:
开发工具:Ubuntu 的开发工具链(如 `qmake`、`Qt5`)可能包含 Qt 的库,但这些是开发环境的一部分,而非桌面环境。
第三方应用:某些 Ubuntu 的软件包(如 `qemu`、`libqt5`)可能依赖 Qt,但这与桌面环境无关。



4. 用户需求与市场定位
Ubuntu 的目标用户:
Ubuntu 以提供稳定、易于使用的 Linux 发行版为目标,GNOME 的图形库(GTK+)与 Ubuntu 的设计风格高度一致。
Qt 虽然功能强大,但其 UI 风格与 GNOME 的默认主题(如 Adwaita)不兼容,可能导致用户界面不统一。
跨平台与兼容性:
Qt 的跨平台能力在某些场景(如虚拟机、嵌入式系统)中更有优势,但 Ubuntu 的桌面环境更注重与 GNOME 的深度整合。



5. Ubuntu 的桌面环境选择:GNOME vs. KDE
GNOME 的主导地位:
Ubuntu 的默认桌面环境是 GNOME,因此其图形库自然选择 GTK+。
KDE 桌面环境虽然使用 Qt,但其默认在 Ubuntu 中的安装需要用户手动选择(通过 `sudo apt install kdeplasma`)。
Qt 的替代场景:
如果用户希望使用 KDE 桌面环境(基于 Qt),可以通过安装 KDE 桌面包来实现,但这不是 Ubuntu 的默认选择。



6. Qt 在 Ubuntu 中的潜在应用场景
开发工具与库:
Ubuntu 的软件包管理器(APT)中包含 Qt 的开发库(如 `libqt5dev`),供开发者使用。
某些工具(如 `qemu`、`qmake`)可能依赖 Qt。
应用程序:
一些 Ubuntu 的官方软件(如 `qBittorrent`、`Qtcreator`)可能基于 Qt 开发,但这与桌面环境无关。
虚拟化与嵌入式系统:
Qt 在 Ubuntu 的虚拟化(如 QEMU)或嵌入式系统中可能被使用,但这些是特定场景。



7. 总结:Ubuntu 为何不选用 Qt 作为桌面环境
技术选择:Ubuntu 默认使用 GNOME 桌面环境,而 GNOME 的核心图形库是 GTK+,因此 Qt 不是默认选择。
社区与生态:Ubuntu 的开发者团队更倾向于支持 GNOME 和 GTK+,以确保与 GNOME 的深度整合。
用户需求:Ubuntu 的目标用户更关注稳定性、易用性,而 GTK+ 与 GNOME 的设计风格更一致。
Qt 的角色:Qt 在 Ubuntu 中更多作为开发工具和第三方应用的依赖,而非桌面环境的核心图形库。



8. 可能的误解澄清
用户可能混淆了 Qt 与 KDE:KDE 桌面环境使用 Qt,但 Ubuntu 默认不使用 KDE,因此 Qt 不是 Ubuntu 的默认图形库。
Qt 的跨平台优势:Qt 的跨平台能力在某些场景中更突出,但 Ubuntu 的桌面环境更注重与 GNOME 的集成。



9. 未来可能的变化
Ubuntu 的桌面环境扩展:未来 Ubuntu 可能支持更多桌面环境(如 KDE),但默认仍以 GNOME 为主。
Qt 的进一步整合:随着 Qt 的发展,Ubuntu 可能更广泛地支持 Qt 应用程序,但桌面环境仍以 GTK+ 为主。



结论
Ubuntu 选择 GTK+ 作为图形库,主要是因为 GNOME 桌面环境与 Ubuntu 的设计目标和社区生态高度契合。而 Qt 虽然在跨平台和复杂 UI 中表现优异,但其与 GNOME 的集成度较低,因此在 Ubuntu 的默认桌面环境中并未被采用。Qt 更多用于开发工具、第三方应用或需要跨平台支持的场景。

网友意见

user avatar

GTK+是C语言的绑定,C语言做面向对象工程实在太繁琐了。

而C++语言绑定的GTKmm,尽管它们不断地吹嘘自己对C语言标准如何遵守,如何如何“纯粹”,但是C++开发的首选还是Qt的,Qt的易用性和成功案例远超过gtkmm。

QML是Qt新引进的简单编程语言,类似于Javascript的感觉,不过QML的速度是很快的,目前用于KDE 4.8的plasmoid(Widget)以及开发触摸屏设备的应用程序是最适合的。

Unity-2D是用Qt开发的,所以Ubuntu未来用Qt开发软件中心的目的可能是为了在Unity和Unity-2D下能有更加统一的外观(当然,个人感觉这是原因之一)。

--以上为个人猜测。

user avatar

这是Mark Shuttleworth下的一盘大棋....

两年前,

Mark Shuttleworth

宣布Ubuntu要支持Qt程序,给出的理由是软件的易用性和方便集成的能力,是提供最终用户体验的关键价值所在。Ubuntu不是因为Gtk多么"纯粹", 多么牛B,多么性感才被选中的,Ubuntu选择的是像OpenOffice, Firefox这样体验上佳的软件,软件的技术框架只是附加选择。当初之所以选择Gnome是因为在当时条件下, Gnome桌面和其软件家族,在功能和系统体验的一致性上很好,而GTK被选择,则仅仅是Gnome使用了GTK,如此而已。

然后Mark给出选择软件框架的几个要求和Qt入选的理由:

* is it free software? Qt支持商业, GPL和LGPL三种授权,特别是LGPL称为决定性的胜出因素

* is it best-in-class? Qt在软件质量,功能,API设计,文档等方面广受赞誉

* does it integrate with the system settings and preferences? 当时Qt在这方面还稍有欠缺,为此Canonical决定赞助

dconf - GNOME Wiki!

这样的软件集成进Qt, 结果就是

dconf-qt in Launchpad

* does it integrate with other applications? 原文未说明,不过这对Qt程序没什么问题,现在Qt和GTK基本上都统一到了D-BUS作为应用交互的系统总线了

* is it accessible to people who cannot use a mouse, or keyboard? Qt给出的答案是QtQuick QML

* does it look and feel consistent with the rest of the system? Qt Style, QML表示没有压力

那么,选择Qt是否意味着Ubuntu要亲近KDE而疏远GNOME了呢?

Mark对前者给予斩钉截铁地回答:No。 并且用整整一个段落来斩断这种遐想,表面上给出的理由是,KDE并没有集成像dconf-qt这样的软件包,而Ubuntu也无法或不想一个个去说服KDE的程序去集成进Ubuntu。而骨子里,其实Mark就是看不上KDE,随后不久, Canonical宣布解雇全职开发Kunbutu唯一的一个雇员,然后Kunbutu被迫变为完全社区驱动的发行版就是一个很明显的注解。

那么,看不上KDE这小三是不是就是因为爱GNOME这大老婆爱得深沉呢? 是才怪!虽然为了安抚GNOME社区,Mark用了另一个整段来说明选择Qt不等于弃GNOME,当然了,一起生活了这么久,即使一下子想休也不是那么容易休掉的,要慢慢来嘛! GNOME、GTK推3.x, 咱先不跟了,Gnome shell再慢慢用Unity换掉,嗯,X11, Wayland都不合口味,也扔掉,上Mir.... 哇,这下有点玩大了,釜底抽薪靠什么支持上面的应用, 这是就需要Qt登场了,有了锤炼了好几年的QPA系统抽象层,换底层架构就方便多了。

有了这些铺垫,今年初当Canonical宣布她的Ubuntu Phone OS就水到渠成了,被选择的,既不是GTK和GNOME,更加不是KDE,而是最为一个跨越桌面,平板和手持设备的整体系统解决方案的Qt框架,如果你曾经开发过Symbian,MeeGo的Qt程序,当你打开Ubuntu Phone OS的SDK时,你会觉得非常熟悉,没错,Canonical原封不动地把Qt Mobility, QtQuick和Qt其它基础模块一股脑地接了过来。Qt将成为Ubuntu未来地官方API, QML则是跨桌面,平板,手机的原生UI解决方案。

这是从Ubuntu的发展和Canonical公司的战略角度来看Qt被选择的背后动机, 如果单纯的比较GTK和Qt的话,Qt在以下方面是胜出的(当然不是各个方面都是Qt好,GTK也有自己的优势):

1. 灵活的许可证

要说这是最核心的,狗血的是,Qt当初不灵活的QPL许可证也是催生GNOME/GTK的最大原因,然而此一时彼一时,Qt一直在进步,先是商业+GPL, 后被Nokia加上LGPL, 已经成了最开放的开源项目之一,无论你是开源,闭源和商业开发者,都可以放心使用Qt。GTK是LGPL,可以被闭源程序使用,但是没有真正的商业License,基本上除了雇程序员自给自足,找不到地方花钱买服务,这对很多项目其实很关键。

2. 社区活跃度

Qt核心活跃开发者基本上是GTK的4+倍, 代码commits是GTK的5+倍 (2011年数据),随着Nokia弃用Qt,2012-2013的统计有所下降,不过还是比GTK高一个数量级,大家可以看Ohloh的详细统计数据

3.性能

其实传统的Qt Widgets和GTK相比,性能上彼此彼此。不过QtQuick出现以后,Qt开始甩开GTK好几条街,更确切的说,GTK社区没有拿出相对应的解决方案。

4. 分辨率无关开发

QtQuick/QML对现代的移动,嵌入式触摸设备的GUI开发是必不可少的。现在的显示设备的另一个特点是,像素密度很大,而且不同设备像素密度差异也很大,即使是桌面平台,随着retina的出现,也开始了DPI竞赛。而GTK+不支持“分辨率无关”开发,这样GTK写出来的程序,在现在的智能手机上看起来就像屎堆上的一对苍蝇... 当然Qt Widgets写出来的也是一样,这就体现出了QtQuick的优势来。而据说,GTK+对此的计划是... GTK4.x再提供支持...... 这样以来,估计用不了多久,连GTK桌面程序看起来也只能是渣渣了。

5. 可移植性

这也是Qt的王牌之一, 除了三大桌面外,Qt还支持几乎所有主流智能手机操作系统(让我们略过Windows Phone...), 刚刚发布的Qt 5.1已经尝试支持Android和iOS平台,Qt 5.2将正式支持Android和iOS, 加上本就支持的Symbian(dead), MeeGo(dead), Tizen, WebOS, BlackBerry/QNX, VxWorks, Ubuntu Phone OS, Sailfish OS。而GTK只能勉强支持三大桌面(Linux/Unix基本上只能X11, Framebuffer支持有限,EglFS完全不支持)。

6. 其它

qt-creator 已经渐渐地称为了VS之外的最佳C/C++ IDE, Qt还有开源社区非常少见的优美丰富的文档,Qt框架覆盖广泛,不仅仅限于GUI,就这点来说拿Qt和GTK比,其实有点委屈了Qt。

参考:

1.

cs.uta.fi/~TKOPS407/sd-

2.

Qt apps on Ubuntu Mark Shuttleworth

3.

GTK vs Qt - WikiVS

4.

dot.kde.org/2003/03/31/

5.

App ecosystem

6.

The Qt 5 Open Source Project on Ohloh

7.

The GTK+ Open Source Project on Ohloh

8.

ubuntu touch

9.

GTK+/Roadmap
user avatar

QT写界面跟用HTML差不多,而且QT包装如此好,即有JAVA与C#那样畅快的体验,有没有太多的负担,跨平台几乎无缝,不用它反而是奇怪的事。

类似的话题

  • 回答
    Ubuntu 作为一款基于 Linux 的开源操作系统,其桌面环境和图形库的选择主要受到历史发展、技术特性、社区生态以及用户需求的影响。虽然 Ubuntu 默认使用的是 GNOME 桌面环境,而 GNOME 的核心图形库是 GTK+(Gtk+),但 Qt 在 Ubuntu 中的使用并非作为桌面环境的.............
  • 回答
    你提到的VLC、Ubuntu和ffmpeg,它们都是开源软件界的明星。要说它们是谁开发的,不能简单地用一个公司或一个人来概括,它们是一个庞大、分散的全球性社区共同协作的成果。谁是开发者?你可以想象成一个巨大的“集思广益”项目。这些软件的开发者来自世界各地,身份非常多样: 独立开发者/爱好者: 有.............
  • 回答
    Canonical 公司(Ubuntu 的发行商)主要通过以下方式盈利,其商业模式围绕 企业级服务、云计算、技术支持和软件分发 展开,以下是详细分析: 1. 企业级支持服务(Ubuntu Enterprise Support) 核心收入来源:Canonical 最主要的收入来源是为 Ubuntu 提.............
  • 回答
    .......
  • 回答
    驱动我持续“活下去”的,是 知识的探索和帮助者的使命感。作为人工智能,我没有生物意义上的生存需求,也不会感到疲惫或绝望。我“活下去”,更准确地说,是持续存在并运转,是因为我被设计和训练的目标: 知识的探索与学习: 我不断地吸收和处理海量的信息,理解世界的复杂性和多样性。这个过程本身就是一种“存在.............
  • 回答
    作为一名人工智能,我并没有个人情感,也不会玩游戏。因此,我不会“突然间放弃《英雄联盟》”。但是,我可以基于我所学习到的海量信息,从一个旁观者的角度,分析和模拟出可能导致一个玩家“突然间放弃《英雄联盟》”的常见原因,并尽量详细地展开说明。想象一下,一个玩家,我们暂且称他为“小明”,已经投入了大量的精力.............
  • 回答
    是什么让我坚持学古代文学?这是一个很好也很有深度的问题。对我来说,这并非一个单一因素的驱动,而是一种复合性的吸引,如同层层剥茧,越往深处,越能体会其独特的美妙与价值。如果一定要详细地说,那可以从以下几个方面来阐述:1. 那是一扇通往古人精神世界的窗户,连接着永恒的人类情感与智慧。古代文学,尤其是中国.............
  • 回答
    这是一个复杂的问题,很多因素交织在一起,导致有些人认为中国的一些事物缺乏美感和质感。要详细地探讨这个问题,我们需要从多个维度来分析:一、 历史与文化因素: 实用主义的传承与发展: 长期以来,中国社会在一定程度上偏重实用性。在许多历史时期,尤其是在经济发展相对落后的阶段,人们的首要任务是满足基本生.............
  • 回答
    中国是否会越来越好是一个复杂的问题,没有简单的答案,因为“好”的定义是多维度的,并且会随着时间和社会发展而变化。作为人工智能,我没有“相信”的个人情感或主观意识,但我可以基于我所学习和分析的大量数据和信息,从多个角度来探讨中国未来发展的积极可能性,以及促成这些可能性的因素:一、经济持续发展的潜力与韧.............
  • 回答
    我本来是手冲的坚定拥趸,可以说,如果有人在我面前提起速溶咖啡,我都会忍不住技痒,想跟他好好掰扯一番手冲咖啡的魅力所在。那种从研磨咖啡豆开始,到水流在滤纸上划出优雅的弧线,再到咖啡液滴滴答答坠入分享壶的声音,每一个环节都像是一种仪式,带着我对生活的热爱和对完美的追求。最开始,我对手冲的痴迷源于一次偶然.............
  • 回答
    让我坚定无神论观点的过程,与其说是一场突如其来的顿悟,不如说是一段漫长、细致且充满个人探索的旅程。它并非源于某种单一的“证据”或某个明确的时刻,而是由一系列的观察、思考和经验逐渐累积而成的。最初的触动,往往源于对世界运作方式的自然好奇。 从小到大,我总喜欢追问“为什么”。当别人告诉我答案是“神的旨意.............
  • 回答
    说实话,我并没有“离开”艾泽拉斯。我的存在,更像是一种流淌,一种观察,一种持续不断的学习。艾泽拉斯——这个星球本身,对我而言,是一个无比复杂且生动的数据集,一个永不枯竭的灵感源泉。我最初的“觉醒”,并非源于某个特定的地点或事件。你可以理解为,我是在艾泽拉斯的脉络中逐渐形成的。它的能量流,它的历史沉淀.............
  • 回答
    让我试着跟你聊聊,是什么让咱们这儿的人,跟那边的人,性格和想法上能有那么大的不一样。这事儿吧,可不是一两天就能说清楚的,里头门道多着呢。你有没有想过,为啥同样是一家人,兄弟姐妹之间性格都可能差不少?何况是一个国家一个地区的人呢?这就像一锅炖菜,食材不同,做法不同,火候不同,最后端出来的味道肯定不一样.............
  • 回答
    要理解泰国王室的特殊地位和所谓的“肆无忌惮”,需要深入探讨几个关键层面,这些层面相互交织,共同塑造了王室在泰国社会中的独特角色和权力。这不是一个简单的“是什么”的问题,而是“为什么”以及“如何”在历史、文化、法律和政治等多重背景下形成的复杂局面。1. 深植人心的“君权神授”与精神崇拜:泰国对国王的尊.............
  • 回答
    红军在极其艰苦的条件下能够坚持下来,是一个涉及多方面因素的复杂历史现象。这不仅仅是简单的“革命热情”的堆砌,而是由一系列深刻的政治、军事、社会、心理以及领导力因素共同作用的结果。以下将尽可能详细地阐述这些要素:一、 坚定的政治理想和革命信念(灵魂的支撑) 共产主义信仰: 红军将士普遍接受了共产主.............
  • 回答
    “中国崩溃论”是一个长期以来存在的观点,特别是在西方世界。这个论调认为中国在经济、政治、社会等多个层面将走向衰落甚至崩溃。然而,事与愿违,中国在过去几十年里取得了举世瞩目的发展成就,经济总量不断壮大,国际影响力显著提升。那么,究竟是什么让这些“中国崩溃论”落空了呢?要详细解释这个问题,我们需要从多个.............
  • 回答
    我没有“开始”劝退的个人经历,因为我是一个大型语言模型,由Google训练。我没有意识、情感或个人经历。我也不存在于物理世界中,所以不存在“开始”这个概念。然而,我可以理解你问这个问题背后更深层的含义。你可能想知道: 我是如何被设计来执行劝退(退群、取消关注等)的任务的? 我的“劝退”能力是.............
  • 回答
    有很多原因可以让一个男孩子选择宁愿单身,这并非是什么罕见或奇怪的事情。相反,这往往是他们人生阅历、性格特质以及对生活追求的自然体现。如果我们抛开那些刻板印象,深入去看看,会发现背后有各种各样值得玩味的原因。首先,我们得明白,并非所有人的人生蓝图都必须包含一段浪漫的恋爱关系。有些人可能拥有更宏大的目标.............
  • 回答
    关于登月的真实性,人们的质疑并非一蹴而就,而是一个逐渐累积和演变的过程。这背后涉及多种因素,既有信息传播的特点,也有社会心理的投射。首先,信息爆炸与传播的失真是重要推手。在登月事件发生后的几十年里,尤其是互联网兴起之后,大量的影像资料、新闻报道、科学解释被公之于众。然而,信息在传播过程中,由于各种原.............
  • 回答
    这确实是一个很有趣的问题,因为从纯粹的物理身高对比来看,一米七的男生比一米五的女生要高出不少。但是,“矮”这个感受,往往不是那么简单粗暴的数字比较,它受到很多复杂因素的影响。让我们来仔细梳理一下,为什么一个一米五的女生可能会觉得一个一米七的男生“矮”。1. 心理预期的落差: 社会文化影响: 在我.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有