3

我找不到这个问题的明确答案:Ubuntu 的实际、真实、本机、无包装的 gui 工具包是什么?

我可能从根本上误解了它在 linux 中的工作方式,但我知道,例如,在 Windows 中,有一些低级 C API 构成了 Windows 的本机窗口 takelit,然后是各种包装器(例如我的 C++ 库暂时不记得名字了)。但实际的原生 API 是 C 的。

在 linux 上,没有原生 gui;它只是一个内核。但在 Ubuntu 中有 X11、GTK、Qt 等,我不知道真正的原生工具包是什么。我知道至少对于 Ubuntu Touch,Canonical 正在转向 Qt 作为本机工具包,但即使在这种情况下,Qt 会成为真正的本机工具包,还是只是 X11、Mir 或其他东西的包装器?

4

1 回答 1

5

Linux 发行版没有“本机工具包”。Qt 和 GTK 调用 XLib,但正在切换到 Wayland,而 Mir 对我来说似乎是一个糟糕的主意。不管怎样,真正底层的东西是:XLib、Wayland 或 Mir。而 GUI 工具包、GTK、Qt 在这些之上,并且透明地使用正确的后端。wxWidgets 等其他工具包位于平台的“本机工具包”之上。对于 Linux,他们选择了 GTK。

Ubuntu 正在迁移到 Qt,但之前是 GTK,所以你无法预测未来会是什么。但是您的应用程序的集成取决于您的用户作为桌面环境运行什么,因此 Qt 或 GTK 是最佳选择。不过,Qt 更适合 Windows 的可移植性。

于 2013-06-02T01:06:44.093 回答