【发布时间】:2014-06-08 19:29:39
【问题描述】:
我从事控制台编程已有几年了,现在是时候了解一下迷人的 GUI 世界了。我在 wxWidgets 中涉猎过一些;编译了一个 Hello World 程序,玩了一下,等等。
现在我是那些有“低级诅咒”的人之一:我不喜欢知道如何使用某些东西来产生良好的效果 - 我想知道引擎盖下发生了什么,即使它是几乎没有实用价值。
所以我一直在阅读这个主题(例如here),但我发现很难理解所有不同的系统、工具包以及它们的作用。到目前为止,我已经弄清楚了(如果我错了,请纠正我):
- Linux 本身“只是”一个内核;它不提供 GUI 支持 (?)。
- X Window 系统是大多数类 UNIX 系统上 GUI 的基础。
- GTK 是一个 GUI 工具包,Qt 包含一个 GUI 工具包。 GTK 和 Qt 处于同一“级别”(?)。
- Gnome 是基于 GTK 构建的桌面环境,KDE 是基于 Qt 构建的。
- wxWidgets 是一个包含 (?) 较低级别工具包(如 GTK)的库,从而提供跨平台优势。
- OpenGL 是一种用于渲染 2 维和 3 维矢量图形的 API。
现在提出一些问题:坚持使用类 UNIX 系统:
- 谁在这一切的底部?,即哪个组件呈现最终显示在屏幕上的位图?
- 这是通过 OpenGL 完成的吗?如果是这样,谁调用 OpenGL?在没有显卡的旧电脑上是如何做到的?
- 如果你想真的固执,你能做到多低?您可以在其中编写 GUI 的最原始 API 是什么? X11? OpenGL? (请不要说逻辑门 :))。
另外,Windows 操作系统怎么样?它是完全遵循类似的结构,还是完全按照自己的方式发展?
【问题讨论】:
-
这类问题比较适合programmers.stackexchange.com
-
亲爱的@mga:我谦虚地建议您将问题的标题重命名为“X-Windows、wxWidgets、GTK/Qt 和 OpenGL 之间有什么区别?”这样就可以找到问题并对其他人有用。
-
我同意 RobbieE 的观点。此外,它太宽泛了。
标签: qt user-interface gtk wxwidgets