linux - * NIX GUI如何工作?

标签 linux unix user-interface gnome kde

我想了解更多有关使* NIX系统上的GUI正常工作的原因,但还不确定从哪里开始研究。根据我的理解,X服务器是使所有视觉效果成为可能的原因,而且还有各种UI环境,例如KDE,Gnome等。

但是,例如,我一直认为在某些UI环境下运行会限制您使用该环境的程序,直到我意识到我能够在Gnome下使用KDE实用程序和软件,反之亦然,而这仍然保留了其 native 外观。环境。

什么是开始学习该主题的好地方?

最佳答案

本质上,GUI位是包含chrome(程序窗口周围的内容)的单个库,通常还包含许多其他内容,例如 table 面工具栏等。 GNOME和KDE是此类的 table 面环境示例。

它们每个都包含一个窗口管理器,该窗口管理器可以准确地告诉您的程序在哪里绘制以及如何绘制镶边。

在它们下面,您具有X框架,该框架提供了窗口管理器用来在屏幕上绘制的API。因此X取决于您的图形驱动程序,它告诉它如何与您的硬件进行交互。

在您的窗口管理器之上,您已经有了实际的程序。每一个都调用窗口管理器以执行通用操作,例如“给我一个带关闭按钮的50x50窗口”。

程序绘制的实际窗口小部件通常使用图形工具箱,如GNOME附带的那样。 KDE包含Qt工具包。

这里有很多wm的选择http://xwinman.org/

关于linux - * NIX GUI如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4035983/

相关文章:

python - 在 QtWidget 的 PyQt5 中按下角落里的红色 x 按钮时如何处理/覆盖?

linux - centos配置网络的方法

我可以编译一个依赖库的 C 程序,但是这个库不是 .h 文件,而是一个二进制文件,因为它是先编译的?

linux - 在路径之前使用 find 命令显示文件大小

JavaScript 设计模式?

java - Android 自定义操作栏未填充父项,标题未居中对齐

linux - 是否有带时间戳的 Linux 串行终端?

linux - '__u32 __fswab32(__u32)' 不能出现在 netinet/tcp_md5.h 中的常量表达式中

c - 尝试将一个 c 文件链接到另一个时出现错误

Unix:文件有 28 列,以空格分隔,打印第 8 列唯一值以及第 16 列到第 28 列的总和