好吧,在深入讨论之前,我非常清楚 Gtk 和 Qt 是极好的框架。事实上,我对它们都没有任何疑虑。
话虽如此,有谁知道正在进行的项目,其中 X11/Xlib 将成为完整的库?遗憾的是,我问这个问题的人以前是一位只使用 Windows 的开发人员。在 Win32 API 中,从基本窗口到对话框的所有内容都包含在同一个 API 级别中。而在 Linux 下,基本窗口、抗锯齿字体、硬件交互都是独立的库。对话框大体上仍然是自建的。
如果没有项目希望完成 X11,是否有人知道任何资源可以帮助人们了解开展此类项目的基础知识?
答案1
我必须说,你的问题的答案是“不”。根据其基本理念和设计,Xlib 将绝不尝试在一个 API 下提供所有内容。因此从这个意义上来说,Xlib 是“完整的”,因为它可以完成它应该做的事情,而其他更高级别的问题则留给其他层。
Windows 的方法“从基本窗口到对话框的所有内容都包含在同一个 API 级别中”不一定是最好的方法,而 Linux 上采用的方法则完全不同,这源于 X Window 系统的架构和设计选择。我读过很多关于 Windows API 非常复杂且不一致的文章,因此看起来将所有内容统一在一个 API 下可能不是最好的解决方案。事实上,如果库和 API 各自都有明确界定的关注点和功能,那么它会降低您的灵活性。如果我想在非 GUI 程序中进行硬件交互怎么办?如果我需要将抗锯齿图像和字体渲染到文件中怎么办没有正在运行图形环境吗?拥有独立的库可以实现这种功能。
你可以阅读Linux 不是 Windows更好地解释为什么你不应该期望 Linux 模仿 Windows,以及X Window 系统概述 HOWTO对于 X 和在其之上工作的工具包、库和桌面环境背后的哲学的一个略微过时但仍然相当有效的解释。