转:http://www.cnblogs.com/yongpenghan/p/4555619.html

做了一段时间linux下与QT事件相关的工作,经常会遇到X11,总是苦于无法完全理解其与linux以及QT事件之间的关系,所以用两篇文章来简单总结下linux中的图形管理和QT事件与X11的关系。

<1> linux中的图形管理

<2> QT事件与X11的关系

我们先来几个基础概念,相关概念的起源和发展可以百度或谷歌查看。

X11

X11(X Window System Protocol,Version 11),也称X Window,是一种在*nix系统的位图显示视窗系统,为GUI环境构建提供基本的框架,可以在屏幕上绘图、移动窗口、鼠标和键盘操作等,仅为X server和X client之间提供通信协议。X server是xfree86/xorg驱动下的显示设备、鼠标、键盘等外设的统称,X client通过X11协议和xfree86/xorg实现的X server通信,比如X client告诉X server画一个左上角坐标为(x, y)、宽为w、高为h的窗口,xfree86就点亮显示器的一些像素点,绘制一个请求的窗口。

X client的实现用Xlib来封装,其头文件一般位于/usr/include/X11/下。

XFree86

一个实现X server的免费服务器软件。

Gnome

Gnome(GNU Network Object Model Environment),*nix系统的图形界面管理系统,利用Gtk库实现,是一个X client。

KDE

KDE(K Desktop Environment),*nix系统的图形界面管理系统,利用Qt库实现,是一个X client。

Qt

Qt是一个跨平台(通过Q_WS_WIN、Q_WS_X11、Q_WS_MAC等宏定义不同系统的实现)的C++图形应用程序框架,对Xlib做了一层封装。

Gtk

Gtk也是一个跨平台的C图形应用程序框架,同样对Xlib做了一层封装。

看了这几个概念,它们之间的关系也应该大致清楚了。

X server主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将它交给X client作出反馈,并且处理X client传来的输出信息;X client提供一个完整的GUI界面,负责与用户直接交互。

linux本身没有图形界面,Gnome/KDE只不过是linux下的应用程序,Xfree86也仅是linux下的一个应用程序而已。

[GUI] Linux中的图形管理的更多相关文章

  1. linux中服务(service)管理

    一.介绍 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux 中非常重 ...

  2. 在linux中使用包管理器安装node.js

    网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在U ...

  3. LInux中的物理内存管理

    2017-02-23 一.伙伴系统 LInux下用伙伴系统管理物理内存页,伙伴系统得益于其良好的算法,一定程度上可以避免外部碎片为何这么说?先回顾下Linux下虚拟地址空间的分布. 在X86架构下,系 ...

  4. 转:Linux中的内存管理

    前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...

  5. 关于在linux中使用图形界面的网络管理工具

    有好几种自动设置的工具可以选择(既然说是自动设置的工具,那就说明有手动设置的工具,例如 使用 ip, iw, iwconfig 这些命令设置网络),例如:Connman, netctl, Networ ...

  6. Linux中的工作管理(Job Control )

    以前使用Linux老是会不小心按下Ctrl + z,然后就出现看不懂的情况,以为程序突然就没了,今天专门研究了下Linux下的几个快捷键和工作管理. 其中找到一篇很不错的文章,大部分是里面转载的. 原 ...

  7. Linux 中使用 virsh 管理 KVM 虚拟机 (转)

    术语 虚拟化指的是:在相同的物理(硬件)系统上,同时运行多个操作系统,且这几个系统相互隔离的可能性,而那个硬件在虚拟化架构中被称作宿主机(host).虚拟机监视器(也被称为虚拟机管理程序(hyperv ...

  8. Linux中的段管理,bss段,data段,

    Linux 的段管理, BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存 ...

  9. Linux中ansible批量管理软件部署及剧本编写

    服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29: ...

随机推荐

  1. Elasticsearch5.X IN Windows 10 系列文章(2)

    ElasticSearch版本: 5.5.1 (最新稳定版为5.5.2),由于用到IK中文分词插件,最新版本没有5.5.2 ,所以使用5.5.1 日期:2017-08-29 第二章:安装Kibana ...

  2. go的map获取对应的key-value

    场景: IP是个Key,string字符串是个值, 一个IP可以对应多个字符串. 代码如下: package main import ( "fmt" ) func main() { ...

  3. python 字符串格式化 ( 百分号 & format )

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. ----百分号 tpl = ...

  4. python3----智能检测编码的工具

    f = open('C:/Users/Administrator/Desktop/100.txt', 'rb') data = f.read() # print(data) f.close() imp ...

  5. SQL创建表脚本

    <1>SQL Server设置主键自增长列 SQL Server设置主键自增长列   1.新建一数据表,里面有字段id,将id设为为主键   www.2cto.com   create t ...

  6. JS探秘——那些你理解存在偏差的问题

    Javascript的连续赋值运算 var a = {n:1}; a.x = a = {n:2}; alert(a.x); // --> undefined 看 jQuery 源码 时发现的这种 ...

  7. 1154 回文串划分(DP+Manacher)

    1154 回文串划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有多种划分方式. ...

  8. Linux安装mysql8.*

    分别在Linux和windows上安装mysql8.* 环境 CentOS7 安装mysql8 步骤: window下的Navicat 连接MySql8: 第一部分 CentOS7安装mysql8 1 ...

  9. UI中各种手势的使用点击,捏合,清扫,旋转,平移,边缘移动,长按

    #import "RootViewController.h" @interface RootViewController (){    UIImageView *imageView ...

  10. 通知url必须为直接可访问的url,不能携带参数 异步接收微信支付结果通知的回调地址 不能携带参数。 回调地址后是否可以加自定义参数 同步回调地址 异步回调地址 return_url和notify_url的区别

    [微信支付]微信小程序支付开发者文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7 通知url必须为直接可访问的 ...