Qt 应用程序是不是需要 KDE?

Posted

技术标签:

【中文标题】Qt 应用程序是不是需要 KDE?【英文标题】:Do Qt Applications require KDE?Qt 应用程序是否需要 KDE? 【发布时间】:2011-01-28 10:37:36 【问题描述】:

所有 Qt 应用程序都需要安装 KDE 吗?如果 Qt 运行时与 GNOME 一起安装就足够了吗?我可以让 Qt 应用程序看起来与 GNOME 下的 GTK 应用程序一模一样吗?谁能指点我一篇详细介绍Qt、GTK、KDE、GNOME、X之间关系的文章?

【问题讨论】:

在 linux 上,以下是否正确? - 应用程序使用 Qt 来绘制它的 UI。 Qt 绘制到 X 和 X 绘制到硬件?是否可以在不加载 GNOME 或 KDE 的情况下简单地启动 X 服务器并运行 Qt 应用程序?如果是这样,怎么做?窗口管理器是如何出现的? Qt 是直接绘制到 X 上还是通过窗口管理器绘制? Qt 是使用窗口管理器来绘制窗口,还是窗口管理器使用 Qt 来渲染窗口? 【参考方案1】:

嗯,反之亦然。从历史上看,KDE(和现在)都是基于 Trolltech Qt C++ 框架构建的。 Qt C++ 现在是跨平台的,这使得 KDE 在许多平台上的冒险更加顺利。很快:KDE 依赖于 Qt :)

【讨论】:

【参考方案2】:

我经常在我的 Mac 上运行 Qt 应用程序,偶尔在 Windows 上运行,我完全确定 Mac 和 Windows PC 都没有安装 KDE(也没有安装 Gnome)。所以,对于你的第一个问题,答案是“绝对不”:-)。

【讨论】:

【参考方案3】:

Qt 只是一个 UI 库,恰好 KDE 是用/使用 Qt 编写的。

只要您安装了 Qt 库,您就可以使用 Qt 编写应用程序并在安装了 gnome 的情况下运行它。

是的,只要 Qt 应用程序使用系统正在使用的主题,您就可以使 Qt 应用程序看起来像 gnome 应用程序。 (不知道一般是怎么知道的)我在 ubuntu 和 gnome 下使用了几个基于 Qt UI 的应用程序,它们使用主题很好。

【讨论】:

吹毛求疵...这是 Qt(“可爱”),而不是 QT(QuickTime™)。 “用 Qt 编写”听起来不太对,因为 Qt 不是一种编程语言。东西是用 C、C++、英语、法语写的……KDE 使用链接到 Qt。 好的,做了一些改变。即QT -> Qt【参考方案4】:

在 X 下运行时,Qt 应用程序和窗口管理器都是 X 客户端。它们都与 XServer 通信以绘制、接收输入或操作窗口。 XServer 了解硬件并处理特定监视器的绘图、接收鼠标输入等。

可以在没有桌面环境的情况下运行 Qt 应用程序,甚至可以在没有窗口管理器的情况下运行(尽管您将无法移动/调整程序大小)。窗口管理器等只是正常运行的 X 程序,它们提供自己的功能,但只是间接地相互交互。它们不依赖于运行的另一个特定程序。

窗口的状态(位置、顺序、内容)由X Server管理,可以通过窗口管理器等程序进行查询和更改。

窗口管理器处理窗口的大小、定位和装饰。它在创建/更改窗口时接收事件,因此它可以这样做。它在窗口外部绘制框架,并处理关闭、最大化、拖动窗口等的点击。

Qt 应用程序在主窗口内绘图并处理窗口内的鼠标点击和按键操作。

Qt 可以通过从窗口发送 XEvents(调整大小/移动)或设置 WM 提示(对话框,重要,不可调整大小)与窗口管理器通信。这些通过 XServer,如果没有程序在监听它们,则不会产生任何影响。

【讨论】:

感谢您的信息。我想更详细地了解这些东西。你能给我提供网络上任何资源的链接吗? @fgb 感谢您的精彩回答。如果 Qt 正在处理鼠标点击和按键,这是否意味着“X 服务器”不知道 Qt 窗口上发生了什么。【参考方案5】:

当您开发 Qt 应用程序时,您可以选择在应用程序中包含 KDE 小部件或库。如果你这样做,那么你需要在你的目标机器和 Qt 机器上安装一些 KDE 包(在 Linux 上)或库。我不确定这些在 Windows 或 Mac 上的可用性,尽管正在进行某种将 KDE 移植到 Windows 的尝试。

【讨论】:

以上是关于Qt 应用程序是不是需要 KDE?的主要内容,如果未能解决你的问题,请参考以下文章

Fedora13中kde和qt在哪里

如何在 KDE 上的 Qt 应用程序中禁用自动助记符?

GTK, GTK+, Qt, KDE, GNOME, Unity的区别与联系

以不同的语言运行 Qt 应用程序?

KDE API

QT第一个程序 hello,world