2000/03/04 By maa
--------------------------------------------------------------------------------
Introduction
随着 KDE、GNOME 的流行,来多人开始习惯一启动 GNU/Linux,就在这种图形化使用者介面环境下作业。在慢慢熟悉窗外的世界後,你可曾想过,自己也尝试来写个 X Window 的应用程式?在这篇文章中,我们将带你一探 X programming 的路途,并让你看看在 X 世界中,各种多彩多姿的图形介面函式库。
首先,我得先让你知道很重要的一点:和 Microsoft Windows 这种每个窗子都长得一模一样的制式化系统不同,在 X Window 的世界中,有超过你想像中多的 APIs (Application Programming Interfaces) 和图形介面函式库;搭配不同的函式库,就会让你的应用程式呈现不一样的风貌。如果你有仔细注意 KDE 和 GNOME 的软体,应该不难看出他们之间有甚麽差异。
The Layered X Programming APIs
「一张图胜过千言万语」,我想咱们就直接从底下这张「The Layered X Programming APIs」一图开始吧。(:这张图是我参考一些文件画的,可能不是很正确,如果前辈觉得有不妥的地方,请来信告知!^_^ )
The Layered X Programming APIs
可别被这张图给吓到,我只是想让你知道「要写一个 X Window 的应用程式,其实有好多条路可以走 」。
这张图是这样的,上头的「X Applications」也就是我们的应用程式,可以使用各种 APIs 和图形介面函式库 (图中的方块),透过 X Protocol (Network Connection) 来和 X Server 连线沟通。 Appilication 可以用 Motif,或是 KDE、Qt、Gnome、GTK、PerlTK…甚或最底层的 XLib 等任何一种「函式库」来写。而方块叠在方块之上的或是被箭头指着的,代表着上层的方块是「基於」下层的方块衍生而来,比如 Motif 以 Xt 为基础,或是 KDE 以 Qt 为基础以及 GNOME 是以 GTK 为基础衍生而来。
了解这张图怎麽看後,底下就开始解释这张图各元素所代表的意义:
The X Library (Xlib)
The X Library 是 X Window 程式最低阶的程式设计介面,如果拿来和 Windows 比较起来,Xlib 就和 Windows APIs (或称 Windows SDK) 一样,算是最接近 X Server 的程设介面,它只提供最基本的缯图和讯息事件的处理。
由於 Xlib 只能使用 C/C++ 语言来写,程式的撰写比较低阶杂。因此後来就有将 Xlib 包装简化 (抽象一些) 的函式库出现,让 X Application 的撰写变得比较容易。
X GUI Toolkits
X Toolkit Intrinsics (Xt)
Xt 是第一个把 Xlib 包装成更抽象化的函式库,它提供了「物件导向」的程式设计架构,并且引进了一种称为「widget」的概念,这种「widget」资料结构也就是所谓的「User Interface Componets」像是 menus、buttons 或是 TextBox 等 widgets。从此以後程式设计师就可以用 widget 的观念,来架构我们的应用程式,让程式变得简单且容易了解。
不过 Xt 只定义了应用程式要如何和这些 widgets 沟通,并没有规定这些 widgets 的外观要长甚麽模样。这些 widgets 真正的样子最後还是得靠更高层的函式库来处理。 (通常提供 widgets 的函式库,我们就称之为 X ToolKits)。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 编程 程式 图形 Motif GTK 可以 GNOME KDE 语言 工具 |
注册
个人空间
