您的位置:首页 > 百科 > 正文

精通Qt4编程(第2版)

精通Qt4编程(第2版)》是2011年出版的图书,作者是蔡志明 卢传富 李立夏等。

  • 书    名 精通Qt4编程(第2版)
  • ISBN 978-7-121-12525-6
  • 出版时间 2011年2月
  • 作    者 蔡志明 卢传富 李立夏 等

基本信息

  ​书名:精通Qt4编程(第2版) 作者:蔡志明 卢传富 李立夏 等编

  ISBN 978-7-12来自1-12525-6

  出版日期:2011年2月

  定价:89.00元

宣传语

  畅销书升级版

  诸多大型项目工程开发经验的凝聚之作

内容简介

  本书详细介绍了Qt的基础知识和GUI编程应用,举例翔实,内容全面,基本涵盖了Qt编程的各个方面。全书共分3篇25章,包括Qt GUI编程的基础知识(对话框、基础窗口部件、程序主窗口、布局管理)、中级编程(2D绘或道案察图、拖放操作与剪贴板、文来自件处理、网络编程、360百科多线程、事件机制、数据常程尼库及Qt风格)和高级应用(XML应用、模型/视图结构、高级绘图、进程间通信、Qt插件和脚本应用、多媒体、美光核浏览器、动画及状态机等)。同时,在相关章节也穿插了一些重要的知识点,包括元对象系统、独玉顺属性系统、对象树机制、信号/槽机制等。

  本书体带部系完整,内容实用,可以作凯来内色离压右看站守为Qt初学者的入门进阶书籍,适合具有一晶布定片定开发经验的Qt程序员作为参考书,也可以作为巴呼垂础候微装住势阿扬大中专院校相关专业及培训机构的教材。

前 言

  本书任林记知呀问哥费第1版出版已近三年了,其间Qt也发生了克图于演死较大的变化。最重要的就是Trolltech公司被Nokia收购,由此改变了Qt发展的趋势。Qt走向了更为开放,功能更丰富,支持的平台更多的道路。

  Qt新特点

  归纳起来有以下几点:

  1.支持LGPL(GNU Lesser General Public License)协议。

  我们知道,当一个自由软件使用GPL声明时,该软件的使用者有权重新从本刻既受发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的自由软件开发出来的新软件也一定是自由软件。LGPL是GPL的变种,与 GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。Qt支持LGPL协议后,用户使用开源版Qt获得了更大的自由度。

  2.开放了Qt源代码库,并鼓励社区参与。

  以前Qt虽是开源代码,但源码库并未开放,现在在可以自由地访问Qt源码库,并可以为Qt做出自己的贡献。Qt的源码库使用分布式版本控制系统Git管理,也可以通过浏览器浏览。这里有Qt,Qt Creator,Qt Jambi等多个项目等着您的参与!开放源代码库,拉近了Qt开发者与用户之间的距离似农皇物

  3.彻底开放了原来商业平台的代码。

  原来只能在商业版中使用的ActiveQt,Oracle数据库驱动等,现在都能在开源版中使用旧重视之根控曲待器。开源版和商业版不再是两个源码不同的版本,只是遵守的协议不同而已。开源版用户终物场块于能享受全功能Qt了。同时在Windows平台上也开放了Visual Studio插件和相应支持,开源版用户在Wind供例否况克敌六这ows上除使用MinGW开发外又多了一项选择,使用Vi克请节劳阿袁细是鱼留族sual Studio开发Qt应用。

  4.对嵌入式平台支持力度加大。

  Qt除了继续支持嵌入式Linux平台外,增测露呀加了对Windows CE,Symbian,Maemo 5等嵌入式平台的支持。与此同时,推出了Qt Mobility软件包,对手机上的GPS设备、多媒体、短信、电话等功能提供了较完善的支持,让用户开发手机应用更为便利。同时Qt还对实时操作系统VxWorks和QNX提供了社区支持,为平淡无奇的嵌入式图形系统打了一剂强心针。

  5.最后就是不断添加到Qt软件包中的功能,并行计算框架、动画框架、状态机框架、多媒体框架等几个框架为Qt增色不少。

  浏览器、XQuery、XPATH、XSLT、多点触摸、图形效果支持提升了Qt的能力。当然还有其他功能和性能改进不能一一列出,这都使得Qt 4走向了成熟。Qt 4.7中更是引入了类似于Windows ZAML的声明式UI编程的功能,该功能命名为Qt Quick。

  总之,在几年前,我们还需要向周围的人介绍什么是Qt,如今只需要对如何更好地应用Qt进行交流。在国内图书市场上,也出现了为数不少Qt相关的书籍。为了与时俱进,本书也根据新版的Qt 4.7 进行了修改,推出了第2版,但本版中不包括Qt Quick编程介绍。

  本书的结构

  本书共25章,每章讨论一个专题。章节安排上基本采用循序渐进、由浅到深的原则。但最后的高级篇中的章节没有很强的关联,可以按照随意的顺序阅读。每章内容及作者分述如下:

  篇章 章 名 作者 内 容 简 介 页码

  初级篇 第1章 Qt初步实践 卢传富 建立了第一个较简单的Qt应用程序,在GUI用户界面中显示一行中文 2

  第2章 对话框

  --QDialog 卢传富 介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用 14

  第3章 基础窗口部件--QWidget 卢传富

  蔡志明 首次引入Qt设计器的使用,绘制并实现了一个查找文件功能的部件,介绍了Qt应用程序中使用ui文件的基本方法以及Qt样式表;较深入地分析了Qt对象模型的一些基本知识,涉及信号和槽机制、Qt元对象系统、属性系统和对象树机制,以及部件类型和部件的几何布局等内容 36

  第4章 程序主窗口

  -- QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构成的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和手写代码两种方法实现了简单文本编辑器主窗口界面的排布和管理 87

  第5章 布局管理 卢传富 布局管理是GUI应用程序编程的一个重要方面。Qt提供了多种布局管理部件,包括Qt布局管理器、分裂器、栈部件、工作空间部件和多文档区部件等。本章一一介绍了这些部件,并举例说明了它们在图形用户界面编程中的应用 124

  中级篇 第6章 2D绘图 蔡志明 本章内容较多,包括Qt的绘图要素、图形变换与坐标系统、绘图设备、图像处理、图像打印等 158

  第7章 Graphics View框架 蔡志明 讲解Qt图形系统的模型视图框架--Graphics View框架。包括体系结构、坐标系统、编程方法和图形打印 211

  第8章 拖放操作和剪贴板 蔡志明 本章简要地说明了基于MIME的拖放操作和剪贴板的使用,关于Graphics View框架的拖放操作也在本章 225

  第9章 文件处理 蔡志明 介绍了Qt的文件处理,包括基于流的文本文件和二进制文件处理,文件信息和目录操作,目录以及文件的变化监控,文件引擎的编写 232

  续表

  篇章 章 名 作者 内 容 简 介 页码

  中级篇 第10章 网络 李立夏 介绍了Qt的网络处理,包括编写常见的FTP、HTTP、UDP和TCP程序,以及访问底层网络接口信息和扩展Qt网络模块功能的方法 241

  第11章 多线程 李立夏 介绍了Qt的多线程处理,包括两方面内容:传统的线程操作,以及与Qt事件机制相关的操作。这一章还涉及较多的基本概念,并逐一做了介绍 278

  第12章 事件处理 李立夏 介绍了Qt的事件处理模型,详细介绍了在Qt程序设计中处理事件的五种方法,并讨论了如何利用Qt事件机制加快用户界面响应速度 308

  第13章 数据库 李立夏 介绍了Qt的数据库处理,重点介绍了如何在Qt中使用SQL语句进行数据库操作和如何利用QSqlTableModel这类高层次类进行常见的数据库编程 323

  高级篇 第14章 界面风格 王燕琴

  蔡志明 讲解了Qt的风格原理,从简单到复杂应用Qt自定义风格。Qt的样式表的原理和应用 354

  第15章 XML 蔡志明 对Qt的三种XML解析方式(DOM、SAX和基于流的解析)进行了比较和举例。还讲解了如何使用API写XML文件。XMLPatterns模块的应用,包括XSLT、XQuery、XML模式 413

  第16章 模型/视图结构 蔡志明 阐述了Qt的模型/视图结构,分别对模型视图的三个组成部分(模型、视图和代理)进行了介绍,演示了如何自定义这些组成部分,并简要说明了拖放以及选中操作 443

  第17章 高级绘图 蔡志明 叙述了在Qt中如何使用OpenGL绘图,对基本的OpenGL绘图进行了讲解,介绍了矢量图型文件SVG的读写操作 486

  第18章 进程与进程间通信 李立夏 介绍进程和进程间通信的知识,重点介绍了Qt中桌面环境下基于D-Bus的多进程应用程序开发 502

  第19章 Qt插件 蔡志明 说明了Qt的插件系统,并对Qt Designer插件、数据库插件、风格插件进行了较详细的介绍 528

  第20章 脚本--QtScript 蔡志明 这是Qt 4.3中引入的最新内容,使得Qt能够支持ECMAScript脚本。本章简要地举例说明了在Qt中如何使用脚本,如何将C++对象暴露给脚本 546

  第21章 国际化 骆艳 本章包括编码的处理,Qt Linguist的使用步骤,动态语言切换的内容 557

  第22章 Qt单元测试框架 蔡志明 本章阐述了如何使用QTestLib框架进行数据测试、GUI测试和性能测试 568

  第23章 动画与状态机框架 蔡志明 简要介绍了动画与状态机框架,并结合两个框架的应用实例进行了讲解 576

  第24章 WebKit与多媒体 蔡志明 介绍了浏览器和Phonon多媒体框架,给出了Phonon多媒体播放实例的实现过程 595

  第25章 嵌入式Qt 蔡志明 简要地讲解了在Window Mobile和嵌入式Linux上开发嵌入式图形应用的方法,还给出了嵌入式Qt裁剪的方法 607

  附录A~D 蔡志明 附录中包括Qt在Linux、Windows上的安装,VS2008、Eclipse、Qt Creator集成开发环境的使用,qmake的基本应用,Qt资源 619

  如何获取源代码

  由于Qt是跨平台的,因此书中的内容应用能够在Windows、Linux、UNIX和Mac OS上运行,书中的程序可能在下列平台之一上编写:Windows XP/Vista、Linux(OpenSuSE、Fedora Core等)。因此书中的屏幕截图可能来源于其中的任何一种操作系统。

  要获取本书的源代码,可以访问博文视点资讯有限公司网站获取:

  致谢

  与电子工业出版社孙学瑛编辑是第二次合作了,孙编辑对本书的关心和认真细致的工作,使本书能够及时出版,再次表示诚挚的谢意。

  蔡志明 卢传富 李立夏

  2010年9月30日于武汉

目 录

  初 级 篇

  第1章 Qt初步实践 2

  1.1 第一个Qt程序 2

  1.1.1 建立主程序 2

  1.1.2 建立工程 3

  1.1.3 编译/运行第一个Qt应用程序 8

  1.1.4 第一个Qt程序的代码分析 9

  1.2 使用Qt布局管理器 11

  1.3 关联操作 12

  1.4 小结 13

  第2章 对话框-- QDialog 14

  2.1 自定义对话框 14

  2.1.1 建立新类 14

  2.1.2 添加子窗口部件 16

  2.2 加入主程序 22

  2.3 Qt内建(built-in)对话框 25

  2.4 小结 35

  第3章 基础窗口部件-- QWidget 36

  3.1 Qt设计器绘制窗口部件 36

  3.1.1 Qt设计器基础 36

  3.1.2 绘制窗口部件 41

  3.2 程序中引入自定义窗口部件 49

  3.2.1 直接使用方式 49

  3.2.2 单一继承方式 51

  3.2.3 多继承方式 54

  3.3 Qt的信号和槽机制 55

  3.3.1 基本原理 55

  3.3.2 设计信号和槽 58

  3.3.3 信号和槽的自动关联 66

  3.4 窗口标志及几何布局 66

  3.4.1 窗口标志 67

  3.4.2 窗口部件的几何布局 69

  3.5 Qt对象模型 77

  3.5.1 元对象系统 78

  3.5.2 属性系统 79

  3.5.3 对象树 82

  3.6 隐式共享 85

  3.7 小结 86

  第4章 程序主窗口--QMainWindow 87

  4.1 QMainWindow主窗口框架 87

  4.2 Qt设计器绘制主窗口 88

  4.2.1 菜单 91

  4.2.2 工具栏 94

  4.2.3 中心部件 97

  4.3 代码创建主窗口 99

  4.3.1 创建资源文件 99

  4.3.2 定义主窗口类 99

  4.4 锚接部件 104

  4.5 状态栏 107

  4.6 实现文本编辑器功能 109

  4.7 多文档 120

  4.8 打印文档 122

  4.9 小结 123

  第5章 布局管理 124

  5.1 Qt布局管理器--QLayout 124

  5.1.1 Qt布局管理器简介 124

  5.1.2 布局管理器及窗口部件大小

  策略的应用 128

  5.2 分裂器部件QSplitter 137

  5.3 栈部件QStackedWidget 138

  5.4 工作空间部件QWorkspace 139

  5.5 多文档区部件QMdiArea 153

  5.6 小结 155

  中 级 篇

  第6章 2D绘图 158

  6.1 Arthur绘图基础 158

  6.1.1 绘图 158

  6.1.2 绘图设备 182

  6.2 坐标系统与坐标变换 183

  6.2.1 坐标系统 183

  6.2.2 坐标变换 183

  6.3 用不同的字体 184

  6.4 绘图路径--QPainterPath 188

  6.5 QImage与QPixmap绘图设备 190

  6.5.1 QImage 190

  6.5.2 Pixmap 192

  6.6 组合模式绘图 201

  6.7 小结 210

  第7章 Graphics View框架 211

  7.1 Graphics View概述 211

  7.1.1 Graphics View体系结构 211

  7.1.2 Graphics View坐标系统 212

  7.1.3 深入Graphics View 213

  7.2 图形效果 221

  7.3 图形图像打印 222

  7.3.1 普通打印过程 222

  7.3.2 特殊窗口部件的打印 223

  7.4 小结 224

  第8章 拖放操作和剪贴板 225

  8.1 拖放操作 225

  8.1.1 拖放操作 225

  8.1.2 定义新的拖放操作类型 228

  8.1.3 Graphics View框架下的拖放操作 228

  8.2 使用剪贴板 230

  8.3 小结 231

  第9章 文件处理 232

  9.1 读写文本文件 232

  9.2 操作二进制文件 234

  9.3 临时文件 236

  9.4 目录操作和文件管理 236

  9.4.1 目录操作 236

  9.4.2 文件管理 238

  9.5 监视文件系统变化 238

  9.6 文件引擎 240

  9.7 小结 240

  第10章 网络 241

  10.1 FTP客户端 241

  10.2 HTTP客户端 250

  10.3 UDP应用 254

  10.4 TCP应用 258

  10.5 高级应用 269

  10.5.1 底层操作 269

  10.5.2 使用代理 272

  10.5.3 扩展Qt网络功能 272

  10.5.4 效率问题 276

  10.6 小结 277

  第11章 多线程 278

  11.1 启动一个线程 278

  11.2 线程互斥与同步 282

  11.2.1 临界区问题 282

  11.2.2 使用QMutex 283

  11.2.3 使用QSemaphore 284

  11.2.4 使用QWaitConditon 286

  11.3 线程的其他问题 289

  11.3.1 优先级问题 289

  11.3.2 死锁及优先级反转问题 292

  11.3.3 本地存储问题 294

  11.4 Qt的线程机制 295

  11.4.1 可重入与线程安全 295

  11.4.2 线程与事件循环 296

  11.4.3 线程与信号/槽机制 297

  11.4.4 多线程网络示例 298

  11.5 并行计算 302

  11.5.1 利用QtConcurrent启动线程 302

  11.5.2 图片浏览器示例 303

  11.6 小结 307

  第12章 事件处理 308

  12.1 事件机制 308

  12.1.1 事件来源与类型 308

  12.1.2 事件处理方法 309

  12.2 事件处理器 310

  12.3 事件过滤器 315

  12.4 加快用户界面响应 318

  12.4.1 使用processEvents()函数 318

  12.4.2 使用定时器 320

  12.5 小结 322

  第13章 数据库 323

  13.1 连接数据库 323

  13.2 常用数据库操作 328

  13.2.1 使用SQL语句 328

  13.2.2 事务操作 330

  13.2.3 使用SQL模型类 331

  13.2.4 数据表示 335

  13.3 Qt数据库应用 337

  13.3.1 使用嵌入式数据库 337

  13.3.2 使用Oracle数据库 340

  13.4 小结 352

  高 级 篇

  第14章 界面风格 354

  14.1 使用Qt风格 354

  14.2 简单自定义风格 355

  14.2.1 界面设计 355

  14.2.2 自定义界面外观 356

  14.2.3 换肤 372

  14.3 Qt风格原理 376

  14.3.1 风格元素 377

  14.3.2 风格选项 381

  14.3.3 风格函数 383

  14.3.4 风格调色板 384

  14.3.5 风格绘制过程 386

  14.4 高级自定义风格 390

  14.5 Qt样式表 407

  14.5.1 样式表语法 407

  14.5.2 样式表的应用 409

  14.6 小结 412

  第15章 XML 413

  15.1 DOM 413

  15.1.1 DOM入门 413

  15.1.2 使用DOM 414

  15.1.3 使用DOM写XML文件 417

  15.2 SAX 420

  15.3 基于流的XML API 425

  15.4 QtXmlPatterns模块 431

  15.4.1 XSLT 431

  15.4.2 XQuery 433

  15.4.3 XML Schema 437

  15.5 小结 442

  第16章 模型/视图结构 443

  16.1 模型/视图结构与MVC设计模式 443

  16.1.1 模型 444

  16.1.2 视图 444

  16.1.3 代理 445

  16.2 使用已有的模型视图类 445

  16.2.1 使用已有的模型和视图类 445

  16.2.2 QListWidget、QTreeWidget和QTableWidget 447

  16.3 模型(Models) 459

  16.3.1 模型索引 459

  16.3.2 模型角色 460

  16.3.3 自定义模型 461

  16.3.4 代理模型 464

  16.4 视图(Views) 469

  16.4.1 自定义视图 469

  16.4.2 数据-窗口部件映射 469

  16.5 代理(Delegates) 475

  16.5.1 使用已有的代理 475

  16.5.2 自定义代理 475

  16.6 拖放与选中 481

  16.6.1 拖放操作 481

  16.6.2 选中模式 484

  16.7 小结 485

  第17章 高级绘图 486

  17.1 3D绘图--使用OpenGL 486

  17.1.1 创建OpenGL窗口 486

  17.1.2 着色 490

  17.1.3 3D和旋转 491

  17.1.4 纹理贴图 495

  17.2 SVG 498

  17.2.1 绘制SVG图形 498

  17.2.2 生成SVG文件 500

  17.3 小结 501

  第18章 进程与进程间通信 502

  18.1 使用QProcess 502

  18.2 Linux进程间通信 505

  18.3 共享内存与本地Socket 506

  18.4 新型进程间通信--D-Bus 512

  18.4.1 D-Bus简介 513

  18.4.2 接口与适配器 514

  18.4.3 QtDBus应用实例 517

  18.5 小结 527

  第19章 Qt插件 528

  19.1 Qt插件开发基础 528

  19.2 Qt设计器插件 529

  19.2.1 使用Scratchpad 529

  19.2.2 提升自定义窗口部件 530

  19.2.3 Qt设计器插件开发 531

  19.3 编写数据库插件 538

  19.4 自定义风格插件 542

  19.5 小结 545

  第20章 脚本--QtScript 546

  20.1 执行ECMAScript脚本 546

  20.2 QtScript中的信号和槽 547

  20.3 使用JavaScript操作Qt对象 550

  20.4 基于Prototype的继承 554

  20.5 QtScript调试器 555

  20.6 小结 556

  第21章 国际化 557

  21.1 Unicode与字符编码 557

  21.1.1 Unicode 557

  21.1.2 汉字编码 558

  21.1.3 编码转换 558

  21.2 Qt Linguist 561

  21.2.1 发布管理器 561

  21.2.2 翻译器 563

  21.2.3 加载翻译文件 566

  21.3 语言切换 566

  21.4 小结 567

  第22章 Qt单元测试框架 568

  22.1 QTestLib框架 568

  22.1.1 QTestLib 568

  22.1.2 第一个Qt单元测试 569

  22.2 数据驱动测试 570

  22.3 GUI测试 572

  22.3.1 仿真GUI事件 572

  22.3.2 重放GUI事件 573

  22.4 基准测试 574

  22.5 小结 575

  第23章 动画与状态机框架 576

  23.1 动画框架 576

  23.2 状态机框架 578

  23.3 实例分析 582

  23.4 小结 594

  第24章 WebKit与多媒体 595

  24.1 WebKit 595

  24.1.1 基于WebKit的浏览器 595

  24.1.2 添加OpenSSL支持 596

  24.1.3 Qt WebKit编程 597

  24.2 Phonon多媒体框架 597

  24.2.1 Phonon体系结构 597

  24.2.2 Phonon媒体播放器 600

  24.3 小结 606

  第25章 嵌入式Qt 607

  25.1 Windows Mobile平台 607

  25.1.1 Windows Mobile平台Qt应用开发流程 607

  25.1.2 部署Qt应用程序 611

  25.1.3 使用移动电话仿真器 613

  25.2 嵌入式Linux平台 614

  25.2.1 嵌入式Linux平台Qt体系结构 614

  25.2.2 开发环境配置 616

  25.3 嵌入式Qt的裁剪 618

  25.4 小结 618

  附录A Qt安装 619

  附录B Qt集成开发环境 624

  附录C qmake速查 631

  附录D Qt资源 636

发表评论

评论列表