《Qt及Linux操作系统窗口设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:倪继利编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121024349
  • 页数:450 页
图书介绍:如何在Linux内核上建立窗口系统,这是嵌入软件开发工程师必须了解的。Qt/Embedded是高端嵌入式设备PDA及手机的主流开发工具;作为一项成熟的技术,KDE桌面系统对于嵌入窗口系统的设计有很大参考价值;Qtopia给嵌入式窗口系统提供了很好的框架。本书不仅阐述了KDE及X Window的机制,分析了Qt及Qt/Embedded开发工具的核心技术,而且还详细介绍了如何在嵌入设备上建立Qtopia窗口系统。掌握了本书中所介绍的技能,读者可以在Linux内核上建立窗口系统,开发应用程序并能够在PC上模拟运行为嵌入式设备开发的应用程序。本书主要针对从事开发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.7.2 X传输接口 26

1.7.3 XDMCP协议 30

1.8 X Client应用程序源代码分析 31

1.8.1 xinit分析 31

1.8.2 XOpenDisplay 35

1.8.3 函数XCreateWindow分析 39

1.9 X Server应用程序分析 43

1.9.1 X Server概述 43

1.9.2 DIX层 44

1.9.3 OS层 48

1.9.4 DDX层 56

1.9.5 Screen 62

第2章 Qt编程核心技术 81

2.1 Qt概述 81

2.2 Qt对象模型 81

2.2.1 信号和槽 83

2.2.2 元对象系统 85

2.2.3 元对象编译器限制 87

2.2.4 属性 89

2.3 QObject类 90

2.3.1 对象树 91

2.3.2 事件处理过程 92

2.3.3 事件运行机制 95

2.3.4 事件过滤器 95

2.3.5 定时器 96

2.3.6 连接函数connect 98

2.3.7 字符串翻译函数 98

2.4 Qt国际化 98

2.4.1 软件中字符串国际化方法 98

2.4.2 创建译本 100

2.4.3 编码支持 101

2.5 QMetaObject元对象类 102

2.5.1 相关的数据结构 102

2.5.2 QMetaObject 对象 103

2.5.3 Q_OBJECT宏及moc生成代码分析 106

2.6 进程间通信——QCopChannel 109

2.7 窗口部件类 111

2.7.1 窗口部件的基类QWidget 112

2.7.2 QFrame类 113

2.7.3 QScrollView类 114

2.8 Qt风格机制 117

2.8.1 风格类 117

2.8.2 窗口系统风格更新机制 120

2.9 布局类 125

2.10 Qt插件 130

2.11 Qt模板库 131

2.11.1迭代器 131

2.11.2 算法 132

2.11.3 数据流串行化 134

2.12 集合类 134

2.12.1 基于指针的容器的结构 135

2.12.2 管理集合条目 135

2.12.3 迭代器 136

2.13 Qt线程 137

2.13.1 线程类QThread 137

2.13.2 线程安全的事件传递 138

2.14 鼠标拖放 140

2.15 键盘焦点 143

2.15.1 焦点移动的方式 143

2.15.2 焦点策略及操作函数 145

2.16 会话管理 145

2.16.1 会话管理 145

2.16.2 测试和调试会话管理 146

2.17 调试技术 147

2.17.1 命令行参数 147

2.17.2 打印警告和调试消息 147

2.17.3 调试宏 149

第3章 KDE窗口系统 151

3.1 KDE 3.5源代码说明 151

3.2 KDE类库 153

3.3 系统资源访问 154

3.3.1 标准资源目录 154

3.3.2 KDE系统配置缓冲 155

3.4 图形支持 155

3.5 用户界面 156

3.5.1 Action模式 156

3.5.2 用XML定义菜单和工具栏 156

3.5.3 在线帮助 157

3.5.4 复杂窗口部件 157

3.6 MIME类型处理 157

3.6.1 一个应用MIME类型的例子 158

3.6.2 映射MIME类型到一个应用程序或服务 159

3.7 KDE服务 160

3.7.1 定义服务类型 161

3.7.2 定义共享库服务 161

3.7.3 定义DCOP服务 162

3.8 KIO框架 163

3.8.1 同步使用KIO 164

3.8.2 同步使用KIO 164

3.8.3 MetaData 164

3.8.4 调度 165

3.8.5 定义一个ioslave 166

3.9 DCOP 167

3.9.1 DCOP工具 167

3.9.2 DCOP收发数据 168

3.10 KDE应用程序启动其他应用程序的方法 173

3.11 国际化和本地化 174

3.12 编译方法 175

3.13 桌面框架 179

3.13.1 Panel Applets 179

3.13.2 控制中心模块 181

3.14 组件框架 182

3.14.1 KParts组件 182

3.14.2 系统托盘 183

3.14.3 集成Java 183

3.15 KDE协议说明 184

3.16 KDE启动 185

3.16.1 startkde脚本分析 186

3.16.2 startkde中的应用程序说明 189

3.16.3 桌面组件 191

3.17 kicker应用程序 193

3.17.1 kicker应用程序的类继承关系 194

3.17.2 桌面配置文件 196

3.17.3 kicker窗口的建立过程 197

3.17.4 K菜单 203

第4章 Qt/Embedded客户/服务器 212

4.1 各种嵌入式GUI 212

4.1.1 X Window 213

4.1.2 MICROWindows 213

4.1.3 MiniGUI 213

4.1.4 QT/Embedded 214

4.2 Qt/Embedded的应用示例 217

4.2.1 编译Linux内核 217

4.2.2 root文件系统 217

4.2.3 裁剪Qt/Embedded库 217

4.2.4 编译应用程序 218

4.2.5 拷贝Qt库及应用程序 218

4.2.6 打包 218

4.2.7 下载及运行 219

4.3 帧缓冲 220

4.3.1 DirectFB介绍 220

4.3.2 虚拟帧缓冲qvfb 220

4.4 创建应用程序 221

4.4.1 QApplication类 221

4.4.2 QApplication构造函数 222

4.5 构建服务器 224

4.5.1 QWSServer类说明 224

4.5.2 QWSServer类构造函数分析 225

4.6 Qt/Embedded客户端与服务器通信 228

4.6.1 服务器相关的类说明 229

4.6.2 客户与服务器间的接收事件处理 230

4.6.3 服务器对窗口的协调管理 235

4.7 输入设备与应用程序通信 237

4.7.1 鼠标键盘相关类 238

4.7.2 打开鼠标设备的过程 238

4.7.3 设备文件与socket连接 241

4.7.4 服务器捕获设备输入信号 243

4.7.5 服务器发送事件给客户 244

4.8 应用程序显示 246

4.8.1 与显示相关的类 246

4.8.2 与字体相关的类 247

4.8.3 函数init_display 248

4.8.4 QWSDisplay构造函数分析 249

4.8.5 QScreen 252

4.8.6 与图形显示相关的类 259

4.8.7 图形显示 262

4.9 运行Qt/Embedded应用程序 268

4.10 字符输入 269

4.11 增加一个加速显示卡驱动程序到Qt/Embedded 270

4.12 Qt/Embedded作为VNC服务器 271

第5章 Qtopia的核心技术 272

5.1 Qtopia简介 272

5.1.1 Qtopia PDA 272

5.1.2 Qtopia手机版 273

5.1.3 手机库 274

5.1.4 Qtopia Desktop 275

5.2 信道和消息 275

5.3 国际化 278

5.3.1 翻译操作步骤 278

5.3.2 .qm文件位置 278

5.3.3 Desktop文件国际化 279

5.3.4 文档国际化 279

5.4 Qtopia文件系统标准 279

5.5 Qtopia插件 281

5.5.1 建立插件的步骤 281

5.5.2 装载插件的方法 283

5.6 输入法插件 286

5.6.1 创建弹出输入方法 287

5.6.2 创建复合输入法 290

5.7 快速启动应用程序 294

5.7.1 改进主窗口创建时间 294

5.7.2 Quick Launcher 295

5.7.3 应用Quick Launcher 296

5.7.4 Quick Launcher的宏定义 296

5.7.5 运行Quick Launcher分析 299

5.8 Qtopia核心类库说明 302

5.8.1 QPEApplication类 302

5.8.2 应用程序配置与连接类 304

5.8.3 PIM管理类 310

5.8.4 桌面相关类 312

5.8.5 字体与输入法相关类 314

5.8.6 StorageInfo和FileSystem类 315

5.8.7 DeviceButtonManager和DeviceButton类 318

5.8.8 图像处理相关类说明 319

5.8.9 多媒体播放相关类说明 319

5.8.10 网络相关类说明 320

5.8.11 软件模块接口类 322

5.8.12 Service和ServiceRequest类 324

5.8.13 MimeType类 325

5.8.14 其他类说明 330

第6章 Qtopia服务器 332

6.1 Qtopia服务器特定的类 332

6.1.1 ServerApplication类 333

6.1.2 Server类 333

6.1.3 Launcher类 334

6.1.4 LauncherTabWidget、LauncherTabBar和LauncherTab类 335

6.1.5 LauncherView和LauncherItem类 337

6.1.6 AppLauncher和QuickLauncher类 337

6.1.7 LoadingWidget和DocumentList类 338

6.1.8 TaskBar类 338

6.1.9 StartMenu和StartPopupMenu类 339

6.1.10 InputMethodSelector和InputMethods类 339

6.1.11 RunningAppBar和SysTray类 341

6.1.12 服务器的其他类说明 341

6.2 Qtopia服务器启动过程 343

6.2.1 Qtopia服务器的main函数 343

6.2.2 ServerApplication类构造函数 345

6.2.3 Server类构造函数 347

6.2.4 创建服务器主窗口界面UI 348

6.2.5 创建应用程序图标视图 350

6.3 应用程序启动过程 354

6.4 文档的打开过程 360

6.5 电池监控小应用程序 362

6.5.1 电池状态窗口类 363

6.5.2 电源状态管理器类 365

6.5.3 插件装载 365

6.6 外观设置 366

6.6.1 main函数 367

6.6.2 SampleWindow类 367

6.6.3 AppearanceSettings类 368

6.6.4 AppearanceSettings类的构造函数分析 368

6.7 安装与卸载应用程序 376

6.8 AppServices应用程序 377

6.8.1 AppServices类 378

6.8.2 ASCheckListItem类 381

6.9 插件管理器 382

第7章 Qtopia的sysinfo应用程序分析 384

7.1 SystemInfo类 384

7.2 VersionInfo类 385

7.3 StorageInfoView类 387

7.4 负载信息LoadInfo 396

7.5 内存信息 399

7.6 DataView类 400

第8章 Qtopia编译及系统集成 401

8.1 qmake介绍 401

8.1.1 qmake编译过程 401

8.1.2 pro文件的语法分析 402

8.2 Qtopia编译方法 404

8.2.1 Qtopia编译步骤 404

8.2.2 Qtopia Desktop编译步骤 406

8.2.3 编译一个应用程序 407

8.2.4 使用NFS运行应用程序 409

8.2.5 应用程序调试 410

8.3 为设备定制Qtopia 411

8.3.1 定制Qtopia启动器用户界面 411

8.3.2 设备硬件因素 412

8.3.3 不安装及不支持的组件 414

8.3.4 安全模式需要的插件 414

8.3.5 电源管理 414

8.3.6 可移去的存储卡 415

8.3.7 I18N 416

8.3.8 访问权限和仅读文件系统 416

8.3.9 MMS客户端 416

8.3.10 GSM模块集成 417

8.3.11 定制键盘 417

8.3.12 配置硬件按钮 419

8.4 系统集成 421

8.4.1 创建设备特定交叉编译工具配置文件 421

8.4.2 定制电源、背景灯控制和键盘扫描码 421

8.4.3 在Qt/Embedded中创建键盘处理函数 422

8.4.4 配置指针设备 423

8.4.5 配置适合设备的Qt/Embedded库 424

8.4.6 配置适合设备的Qtopia 428

8.4.7 为目标设备创建和安装Qtopia image文件 428

8.4.8 在设备上配置适合于Qtopia的环境变量 428

8.4.9 安装另外的字体 428

8.4.10 集成Java 429

8.5 Qtopia编译系统 429

8.5.1 内部的编译系统项目文件说明 430

8.5.2 项目文件生成Makefile 434

8.5.3 src-components.pro和src.pro文件 434

8.5.4 configure脚本生成Makefile 437

8.6 Qtopia的编译过程 442

8.6.1 编译库 442

8.6.2 相互独立的应用程序及插件的编译 444

8.6.3 文件的安装 444

8.6.4 打包分发 446

8.7 生成img文件并烧录 449

主要参考文献 450