X11 是跨 linux 平台并且没有平台怪癖吗?

saz*_*azr 1 linux x11

X11 是否适用于所有 Linux 操作系统?如果我编写一个具有 X11 窗口的应用程序,它在 linux 操作系统中的外观和操作是否相同,或者我是否需要执行不同的调整?

  • 在 c/c++ 和低级跨 linux 平台中是否有 X11 的替代方案?*我知道 QT 和 GTK。
  • 什么是最低级别的 linux 图形系统/窗口系统?

use*_*ser 5

如果我编写一个具有 X11 窗口的应用程序,它在 linux 操作系统中的外观和操作是否相同

是的,但并不是因为您可能认为的原因。X11 非常低级,主要关注绘制图形基元并提供合理的标准化(请注意,这并不意味着理智; X11 可以称为很多东西,但我怀疑“为现代环境精心设计”将是第一个很多人会接触到)硬件输入设备和软件之间的接口。它甚至没有太多的字体和文本绘制支持;这就是开发诸如Pango之类的库的原因。

实际上,这就是为什么 Qt 和 GTK 之类的工具包甚至存在的原因:它们不是 X11 的替代品,而是建立在它之上,使图形应用程序编程不再那么令人头疼。因为它们抽象了如何在屏幕上实际绘制的所有细节,所以它们还允许将图形应用程序移植到不原生支持 X11 应用程序的替代平台,例如 Windows。

如果您想要X11的替代品,那么您正在寻找像Wayland这样正在获得一些动力的产品

如果您使用的是纯 X11,那么窗口内容(不是窗口装饰,如标题栏、窗口边框等;纯 X11 不做窗口装饰,该任务委托给窗口管理器)应该始终看起来像相同,因为您的程序自己进行所有绘图,因此无论好坏,您都可以完全控制结果的外观。

如果您依赖于某些中间库,例如 GTK、Qt 或其他,那么您的应用程序的外观可能取决于用户如何根据个人喜好配置该特定库。如果您希望您的应用程序受到好评,建议您接受用户做出的这些选择,并确保您的应用程序能够优雅地适应它们。