Linux X 视窗编程基础

转自:http://hi.baidu.com/guzhou_diaoke/item/55ea7beb4aae84fde0a5d410


用GTK+进行GNOME编程

Linux中所有的GUI库都基于被称作X视窗系统(更常见的称呼是X11或者X)的底层视窗系统。
1.X视窗系统
X的一个最富有创新性也最令人感到沮丧的特征,是它固守机制的要求,而不是策略的需要。它没有定义用户界面,但提供了创建用户界面的手段。这意味着你可以自由地创建自己的整个桌面环境,随意进行试验和创新。
X视窗系统被分为硬件级和应用程序级组件,它们分别被成为X服务器和X客户端。这些组件使用X协议进行通信。

(1)X服务器
X服务器运行在用户的本地机器上,它在屏幕上完成低层的绘图操作。
因为X服务器直接与显卡交互,所以必须使用一个适合本机显卡的X服务器,并配置好合适的分辨率、刷新率、颜色深度等。
X服务器通过鼠标和键盘监听用户输入,并将键盘按键和鼠标点击传输给X客户端应用程序。这些信息被称为事件,它们构成GUI编程的一个关键元素。

(2)X客户端
X客户端是以X视窗系统作为GUI的任何程序。
通常情况下,X客户端等候X服务器传送的用户事件,然后通过给X服务器发送重绘消息来响应。
X客户端不需要和X服务器运行在同一台机器上。

(3)X协议
X客户端和X服务器使用X协议进行通信,这使得客户端和服务器端可以通过网络分离。

(4)Xlib库
Xlib是X客户端间接用于产生X协议消息的库。它提供一个非常底层的API供客户端在X服务器上绘制非常基本的元素,并响应最简单的输入。
GUI程序员不应该直接使用Xlib进行编程。

(5)X工具包
X工具包是一个GUI库,X客户端可以利用它来极大地简化窗口、菜单和按钮的创建。
历史上最流行的工具包有Motif、OpenLook和Xt,但它们大多已经被技术上更先进的GTK+和Qt取代,这两者分别构成了GNOME和KDE桌面的基础。

(6)窗口管理器
它负责定位屏幕上的窗口。

(7)创建GUI的其他方法--平台无关的窗口API
有些语言本身就支持GUI,并且可以在Linux 下使用,如Java,C#,Tcl/Tk,Python,Perl。

你可能感兴趣的:(Linux X 视窗编程基础)