是否所有 Qt 应用程序都需要安装 KDE?如果 Qt 运行时与 GNOME 一起安装就足够了吗?我可以让 Qt 应用程序看起来与 GNOME 下的 GTK 应用程序一模一样吗?谁能指点我一些详细说明Qt,GTK,KDE,GNOME,X之间关系的文章?
5 回答
在 X 下运行时,Qt 应用程序和窗口管理器都是 X 客户端。它们都与 XServer 通信以绘制、接收输入或操作窗口。XServer 了解硬件并处理特定监视器的绘图、接收鼠标输入等。
可以在没有桌面环境甚至没有窗口管理器的情况下运行 Qt 应用程序(尽管您将无法移动/调整程序大小)。窗口管理器等只是正常运行的 X 程序,它们提供自己的功能,但只是间接地相互交互。它们不依赖于运行的另一个特定程序。
窗口的状态(位置、顺序、内容)由 X Server 管理,可以通过窗口管理器等程序进行查询和更改。
窗口管理器处理窗口的大小、定位和装饰。它在创建/更改窗口时接收事件,因此它可以这样做。它在窗口外部绘制框架,并处理关闭、最大化、拖动窗口等的点击。
Qt 应用程序在主窗口内绘制并处理窗口内的鼠标点击和按键操作。
Qt 可以通过从窗口发送 XEvent(调整大小/移动)或设置 WM 提示(对话框,重要,不可调整大小)与窗口管理器通信。这些通过 XServer 并且如果没有程序正在监听它们将不会有任何影响。
我经常在我的 Mac 上运行 Qt 应用程序,偶尔在 Windows 上运行,我完全确定 Mac 和 Windows PC 都没有安装 KDE(也没有安装 Gnome)。因此,对于您的第一个问题,答案是“绝对不”:-)。
Qt 只是一个 UI 库,恰好 KDE 是用/使用 Qt 编写的。
只要您安装了 Qt 库,您就可以使用 Qt 编写应用程序并在安装了 gnome 的情况下运行它。
是的,只要 Qt 应用程序使用系统正在使用的主题,您就可以使 Qt 应用程序看起来像 gnome 应用程序。(不知道一般是怎么知道的)我使用了几个基于 Qt UI 的应用程序,这些应用程序是在带有 gnome 的 ubuntu 下用 python 编写的,它们使用的主题很好。
嗯,反之亦然。从历史上看,KDE(和现在)都是基于 Trolltech Qt C++ 框架构建的。Qt C++ 现在是跨平台的,这使得 KDE 在许多平台上的冒险更加顺利。很快:KDE 依赖于 Qt :)
当您开发 Qt 应用程序时,您的选择之一是在应用程序中包含 KDE 小部件或库。如果你这样做,那么你需要在你的目标机器和 Qt 机器上安装一些 KDE 包(在 Linux 上)或库。我不确定这些在 Windows 或 Mac 上的可用性如何,尽管正在进行某种将 KDE 移植到 Windows 的尝试。