Qt及Linux操作系统窗口设计
基本信息
编辑推荐
·目前市场上唯一一本关于Qt的专业图书!
·凝聚研发经验,具备专业深度
·本书是继《Linux内核分析及编程》之后,倪继利以“实际、实用、实在”为出发点,为读者倾心奉献的又一力作!
内容简介回到顶部↑
如何在linux内核上建立窗口系统,这是嵌入式设备软件开发工程师必须了解的。qt/embedded是高端嵌入式设备pda及手机的主流开发工具。作为一项成熟的技术,kde桌面系统对于嵌入式窗口系统的设计有很大参考价值;qtopia给嵌入式窗口系统提供了很好的框架。本书不仅阐述了kde及x window的机制,分析了qt及qt/embedded开发工具的核心技术,而且还详细介绍了如何在嵌入式设备上建立qtopia窗口系统。掌握了本书中所介绍的技能,读者可以在linux内核上建立窗口系统,开发应用程序并能够在pc上模拟运行为嵌入式设备开发的应用程序。
本书主要针对从事开发linux应用程序的软件工程师,也很适合作为大学教材和参考书。
本书主要针对从事开发linux应用程序的软件工程师,也很适合作为大学教材和参考书。
目录回到顶部↑
第1章 x window 1
1.1 x window的体系结构 1
1.1.1 x server 2
1.1.2 x client 2
1.1.3 x protocol 3
1.2 窗口管理器 4
1.3 x window启动过程 5
1.4 xfree86配置文件分析 7
1.5 x window程序设计简介 9
1.5.1 xlib编程 9
1.5.2 motif编程 11
1.5.3 gtk/gnome 12
1.5.4 kde 14
1.6 显示驱动程序 14
1.6.1 显卡驱动方式 14
1.6.2 帧缓冲 15
1.6.3 在台式机上使用通用帧缓冲 15
1.6.4 帧缓冲设备驱动程序 18
1.7 x window协议 21
1.7.1 x协议 22
1.1 x window的体系结构 1
1.1.1 x server 2
1.1.2 x client 2
1.1.3 x protocol 3
1.2 窗口管理器 4
1.3 x window启动过程 5
1.4 xfree86配置文件分析 7
1.5 x window程序设计简介 9
1.5.1 xlib编程 9
1.5.2 motif编程 11
1.5.3 gtk/gnome 12
1.5.4 kde 14
1.6 显示驱动程序 14
1.6.1 显卡驱动方式 14
1.6.2 帧缓冲 15
1.6.3 在台式机上使用通用帧缓冲 15
1.6.4 帧缓冲设备驱动程序 18
1.7 x window协议 21
1.7.1 x协议 22
前言回到顶部↑
背景知识
Linux操作系统已被广泛地使用到PC和各种嵌入式设备。笔者在《Linux内核分析及编程》(电子工业出版社2005年9月出版)中分析了内核的各种机制,本书作为它的配套书,主要讲述Linux操作系统的窗口系统设计。
目前主流的Linux窗口系统有:PC上使用的基于开放源代码的Gnome和KDE、嵌入式设备上使用的开放源代码Opie和Gpe,以及一些商业化的版本(如Motorola的PDA手机的窗口系统)。
GPE(Gpe Palmtop Environment)窗口系统最类似于桌面领域中的GNOME,它们都基于GTK,即一种基于C语言的GUI界面开发工具。
Opie(Open Palmtop Integrated Environment)窗口系统类似于桌面领域中的KDE,Opie基于Qtopia,Qtopia是基于Qt/Embedded的简化窗口系统。Opie在Qtopia的窗口系统机制上扩展了类库及应用程序,从而更加实用化,可以在多款PDA及PDA手机上完美运行。KDE窗口系统基于Qt/X11,Qt/X11又基于X Window系统。Qt/X11与Qt/Embedded具有相同接口的类库,对于应用程序编程者来说,可以使用相同的类进行开发。Qt是基于面向对象的C++的GUI界面开发工具,另外还提供了KDevelop和QDesigner IDE图形界面开发环境。
由于Qt具有面向对象、技术成熟等优点,并且目前高端嵌入式设备生产商几乎都选择Qt作为开发工具,因此本书选择Qt作为界面开发工具,选择KDE作为PC桌面环境,选择Qtopia嵌入式设备窗口系统进行分析介绍。
操作系统的窗口系统内容很广泛,对于PC,KDE桌面环境包括KOffice办公软件、网页/文件浏览器和系统工具等应用程序,它所依赖的X Window系统包括多种协议及API库;对于嵌入式设备,Opie包括了许多应用程序,Qt/Embedded包括了许多类库。这么多的内容在一本书中要想全面涉及是不可能的,本书主要针对专业开发所需要的深度,有重点地进行讲述。
本书特色与重点
本书主要讲述如何在Linux内核上建立窗口系统。
对于PC窗口系统,本书重点介绍KDE窗口系统如何在启动时从Linux内核上建立起来,以及输入设备及图形显示卡硬件如何与窗口界面中的控件进行交互;对于嵌入式设备窗口系统,介绍了Qtopia的应用程序管理器如何从Linux内核上启动运行,以及输入设备及图形显示卡硬件如何通过Qt/Embedded客户/服务器与窗口界面中的控件进行交互。由于KDE与Qtopia的窗口系统运行机制有许多相似之处,因此,本书重点讲述了Qtopia的应用程序管理器以及KDE的核心技术。笔者认为只要精通了Qtopia的编程,知道了KDE的核心技术以及与Qtopia编程的差别,并且仔细阅读KDE类库的说明文档,也能编写KDE应用程序。
在本书中,笔者几乎没有对KDE及Qt的类库进行说明。因为它们的API类库说明文档已说明得很详细,还可以参照源代码。通过对照阅读,读者就会明白各种类的用法。
关于作者
笔者从清华大学电子工程系读研究生起,就开始从事Linux内核编程工作,之后又一直在外国著名公司从事Linux内核编程工作;除了内核编程工作外,还从事过嵌入式设备的文件管理器及应用程序管理器等的开发工作。
读者对象及阅读方法
本书的读者对象为从事或准备从事Linux嵌入式设备开发的人员。为阅读本书,读者需具备C++面向对象编程方面的知识。
建议读者在阅读本书时在PC Linux操作系统下编译运行X 86平台的Qtopia,然后对照所运行的Qtopia窗口系统和Qtopia源代码来阅读,效果会更好。
写作目的
本书的写作目的是让读者对Linux窗口的建立过程,以及应用程序从窗口系统启动、文档的打开过程有个清晰的了解。本书中介绍的窗口的分层设计、接口标准化、菜单的通用化,以及应用程序查询硬件信息等设计方法,开发者有较高的参考价值。同时,本书还分析了Qt应用程序的编译过程,即qmake命令如何将项目文件转换成Makefile、依赖关系如何传递等,这些内容对开发者查找编译错误可提供清晰的思路。
结构安排
笔者认为,对于应用程序编程者来说,应该重点掌握类的继承关系及对象管理链表、事件、进程间通信、应用程序与桌面环境的交互等。因此,本书重点介绍了这些内容,而舍去了对类库及利用类库编写应用程序方面的介绍。
Linux操作系统已被广泛地使用到PC和各种嵌入式设备。笔者在《Linux内核分析及编程》(电子工业出版社2005年9月出版)中分析了内核的各种机制,本书作为它的配套书,主要讲述Linux操作系统的窗口系统设计。
目前主流的Linux窗口系统有:PC上使用的基于开放源代码的Gnome和KDE、嵌入式设备上使用的开放源代码Opie和Gpe,以及一些商业化的版本(如Motorola的PDA手机的窗口系统)。
GPE(Gpe Palmtop Environment)窗口系统最类似于桌面领域中的GNOME,它们都基于GTK,即一种基于C语言的GUI界面开发工具。
Opie(Open Palmtop Integrated Environment)窗口系统类似于桌面领域中的KDE,Opie基于Qtopia,Qtopia是基于Qt/Embedded的简化窗口系统。Opie在Qtopia的窗口系统机制上扩展了类库及应用程序,从而更加实用化,可以在多款PDA及PDA手机上完美运行。KDE窗口系统基于Qt/X11,Qt/X11又基于X Window系统。Qt/X11与Qt/Embedded具有相同接口的类库,对于应用程序编程者来说,可以使用相同的类进行开发。Qt是基于面向对象的C++的GUI界面开发工具,另外还提供了KDevelop和QDesigner IDE图形界面开发环境。
由于Qt具有面向对象、技术成熟等优点,并且目前高端嵌入式设备生产商几乎都选择Qt作为开发工具,因此本书选择Qt作为界面开发工具,选择KDE作为PC桌面环境,选择Qtopia嵌入式设备窗口系统进行分析介绍。
操作系统的窗口系统内容很广泛,对于PC,KDE桌面环境包括KOffice办公软件、网页/文件浏览器和系统工具等应用程序,它所依赖的X Window系统包括多种协议及API库;对于嵌入式设备,Opie包括了许多应用程序,Qt/Embedded包括了许多类库。这么多的内容在一本书中要想全面涉及是不可能的,本书主要针对专业开发所需要的深度,有重点地进行讲述。
本书特色与重点
本书主要讲述如何在Linux内核上建立窗口系统。
对于PC窗口系统,本书重点介绍KDE窗口系统如何在启动时从Linux内核上建立起来,以及输入设备及图形显示卡硬件如何与窗口界面中的控件进行交互;对于嵌入式设备窗口系统,介绍了Qtopia的应用程序管理器如何从Linux内核上启动运行,以及输入设备及图形显示卡硬件如何通过Qt/Embedded客户/服务器与窗口界面中的控件进行交互。由于KDE与Qtopia的窗口系统运行机制有许多相似之处,因此,本书重点讲述了Qtopia的应用程序管理器以及KDE的核心技术。笔者认为只要精通了Qtopia的编程,知道了KDE的核心技术以及与Qtopia编程的差别,并且仔细阅读KDE类库的说明文档,也能编写KDE应用程序。
在本书中,笔者几乎没有对KDE及Qt的类库进行说明。因为它们的API类库说明文档已说明得很详细,还可以参照源代码。通过对照阅读,读者就会明白各种类的用法。
关于作者
笔者从清华大学电子工程系读研究生起,就开始从事Linux内核编程工作,之后又一直在外国著名公司从事Linux内核编程工作;除了内核编程工作外,还从事过嵌入式设备的文件管理器及应用程序管理器等的开发工作。
读者对象及阅读方法
本书的读者对象为从事或准备从事Linux嵌入式设备开发的人员。为阅读本书,读者需具备C++面向对象编程方面的知识。
建议读者在阅读本书时在PC Linux操作系统下编译运行X 86平台的Qtopia,然后对照所运行的Qtopia窗口系统和Qtopia源代码来阅读,效果会更好。
写作目的
本书的写作目的是让读者对Linux窗口的建立过程,以及应用程序从窗口系统启动、文档的打开过程有个清晰的了解。本书中介绍的窗口的分层设计、接口标准化、菜单的通用化,以及应用程序查询硬件信息等设计方法,开发者有较高的参考价值。同时,本书还分析了Qt应用程序的编译过程,即qmake命令如何将项目文件转换成Makefile、依赖关系如何传递等,这些内容对开发者查找编译错误可提供清晰的思路。
结构安排
笔者认为,对于应用程序编程者来说,应该重点掌握类的继承关系及对象管理链表、事件、进程间通信、应用程序与桌面环境的交互等。因此,本书重点介绍了这些内容,而舍去了对类库及利用类库编写应用程序方面的介绍。


点击看大图





加载中...

