C++ Qt设计模式
C++ Qt设计模式封面图

C++ Qt设计模式

(美) 艾朱斯特 (Ezust,A.) , (美) 艾朱斯特 (Ezust,P.) , 著

出版社:电子工业出版社

年代:2012

定价:69.0

书籍简介:

本书讲解如何在流行的开源平台Qt 4.7下用C++进行设计模式的开发。利用大量的例题和习题,全书详细讲解了Qt下的窗件、主窗口、模型与视图、反射、线程、数据库以及多媒体的设计,并针对Qt提供的新功能进行了更新。本书无需读者具备C和C++的编程知识,通过学习,即可精通跨平台的C++编程。

书籍目录:

目 录

第一部分 设计模式与Qt

第1章 C++简介 2

1.1 C++概述 2

1.2 C++简史 2

1.3 第一个C++例子 3

1.4 标准输入与输出 5

1.5 函数介绍 7

1.6 qmake,工程文件及Makefile 11

1.7 获得在线帮助 16

1.8 字符串 16

1.9 流 18

1.10 文件流 20

1.11 用于用户输入/输出的Qt对话框 23

1.12 标志符,类型和常量 26

1.13 C++简单类型 27

1.14 const关键字 36

1.15 指针与内存访问 37

1.16 引用变量 41

1.17 const*与*const 42

1.18 复习题 44

第2章 类与对象 46

2.1 struct简介 46

2.2 类定义 47

2.3 成员访问限定符 49

2.4 封装 51

2.5 UML介绍 51

2.6 类的友元 52

2.7 构造函数 53

2.8 析构函数 55

2.9 static关键字 56

2.10 类的声明和定义 59

2.11 复制构造函数与赋值运算符 60

2.12 转换 63

2.13 const成员函数 65

2.14 子对象 66

2.15 练习:类 67

2.16 复习题 74

第3章 Qt简介 78

3.1 风格指南与命名约定 79

3.2 Qt核心模块 80

3.3 Qt Creator,用于Qt编程的集成开发环境 82

3.4 练习:Qt简介 83

3.5 复习题 84

第4章 列表 85

4.1 容器简介 85

4.2 迭代器 85

4.3 关系 90

4.4 练习:关系 91

4.5 复习题 92

第5章 函数 94

5.1 函数重载 94

5.2 可选实参 96

5.3 运算符重载 98

5.4 按值传递参数 101

5.5 按引用传递参数 103

5.6 const引用 105

5.7 函数返回值 106

5.8 从函数返回引用 106

5.9 对const重载 107

5.10 inline函数 109

5.11 带变长实参表的函数 112

5.12 练习:加密 113

5.13 复习题 115

第6章 继承与多态 116

6.1 简单派生 116

6.2 具有多态性的派生 121

6.3 抽象基类的派生 127

6.4 继承设计 130

6.5 重载,隐藏与重写 132

6.6 构造函数,析构函数与复制赋值运算符 133

6.7 处理命令行实参 137

6.8 容器 141

6.9 托管容器,组合与聚合 142

6.10 指针容器 145

6.11 复习题 159

第7章 库与设计模式 163

7.1 建立并复用库 164

7.2 练习:安装库 169

7.3 框架与组件 171

7.4 设计模式 172

7.5 复习题 178

第8章 QObject, QApplication,信号和槽 179

8.1 值和对象 181

8.2 组合模式:父对象和子对象 182

8.3 QApplication和事件循环 187

8.4 Q_OBJECT和moc一览表 188

8.5 信号和槽 189

8.6 QObject的生命周期 190

8.7 QTestLib 191

8.8 练习:QObject, QApplication,信号和槽 194

8.9 复习题 194

第9章 窗件和设计师 195

9.1 窗件的分类 195

9.2 设计师简介 197

9.3 对话框 199

9.4 窗体的布局 201

9.5 图标,图像和资源 202

9.6 窗件的布局 205

9.7 设计师和代码的集成 210

9.8 练习:输入窗体 215

9.9 事件循环:重访 216

9.10 绘制事件和画图 222

9.11 复习题 224

第10章 主窗口和动作 225

10.1 QAction, QMenu和QMenuBar 225

10.2 区域和QDockWidget 232

10.3 QSettings:保存和恢复应用程序的状态 234

10.4 剪贴板和数据传输操作 236

10.5 命令模式 237

10.6 tr()和国际化 243

10.7 练习:主窗口和动作 244

10.8 复习题 244

第11章 范型和容器 246

11.1 范型与模板 246

11.2 范型,算法和运算符 250

11.3 有序映射示例 252

11.4 函数指针和仿函数 255

11.5 享元模式:隐式共享类 257

11.6 练习:范型 260

11.7 复习题 261

第12章 元对象,属性和反射编程 262

12.1 QMetaObject——元对象模式 262

12.2 类型识别和qobject_cast 263

12.3 Q_PROPERTY宏——描述QObject的属性 265

12.4 QVariant类:属性访问 267

12.5 动态属性 270

12.6 元类型,声明和注册 273

12.7 invokeMethod() 275

12.8 练习:反射 275

12.9 复习题 276

第13章 模型和视图 277

13.1 模型-视图-控制器(MVC) 277

13.2 Qt模型和视图 278

13.3 表格模型 287

13.4 树模型 295

13.5 智能指针 298

13.6 练习:模型和视图 300

13.7 复习题 301

第14章 验证和正则表达式 302

14.1 输入掩码 302

14.2 验证器 304

14.3 正则表达式 306

14.4 正则表达式验证 313

14.5 子类化QValidator 314

14.6 练习:验证和正则表达式 316

14.7 复习题 317

第15章 XML解析 318

15.1 Qt XML解析器 320

15.2 SAX解析 321

15.3 XML,树结构和DOM 325

15.4 XML流 332

15.5 复习题 334

第16章 更多的设计模式 335

16.1 创建模式 335

16.2 备忘录模式 342

16.3 Façade模式 347

16.4 复习题 352

第17章 并发 353

17.1 QProcess和进程控制 353

17.2 QThread和QtConcurrent 363

17.3 练习:QThread和QtConcurrent 374

17.4 复习题 375

第18章 数据库编程 376

18.1 QSqlDatabase:从Qt连接SQL 377

18.2 查询和结果集 381

18.3 数据库模型 382

18.4 复习题 383

第二部分 C++语言规范

第19章 类型与表达式 386

19.1 运算符 386

19.2 语句与控制结构 389

19.3 逻辑表达式的求值 394

19.4 枚举 395

19.5 有符号整型类型与无符号整型类型 396

19.6 标准表达式转换 398

19.7 显式转换 400

19.8 用ANSI C++类型转换进行更安全的类型转换 401

19.9 重载特殊的运算符 405

19.10 运行时类型识别 410

19.11 成员选择运算符 412

19.12 练习:类型与表达式 413

19.13 复习题 415

第20章 作用域与存储类 416

20.1 声明与定义 416

20.2 标志符的作用域 417

20.3 存储类 423

20.4 命名空间 426

20.5 复习题 430

第21章 内存访问 431

21.1 指针误用 431

21.2 带有堆内存的更多指针误用 433

21.3 内存访问小结 435

21.4 数组简介 435

21.5 指针的算术运算 436

21.6 数组,函数与返回值 437

21.7 不同类型的数组 439

21.8 有效的指针操作 439

21.9 数组与内存 441

21.10 练习:内存访问 441

21.11 复习题 442

第22章 继承详解 443

22.1 虚指针和虚表 443

22.2 多态与虚析构函数 445

22.3 多重继承 448

22.4 public, protected和private派生 453

22.5 复习题 454

第三部分 编 程 作 业

第23章 MP3自动点唱机作业 456

23.1 Phonon/MultiMediaKit配置 457

23.2 播放列表 457

23.3 多种类型的播放列表 458

23.4 源选择器 459

23.5 各播放列表数据库 460

23.6 星号评分 460

23.7 排序,过滤和播放列表编辑 460

附录A C++的保留关键字 461

附录B 标准头文件 462

附录C 开发工具 463

附录D Alan的Debian程序员快速指南 480

附录E C++/Qt配置 485

参考文献 491

内容摘要:

本书是美国萨福克大学已使用十余年的经典教程,利用跨平台开源软件开发框架Qt阐释了C++和设计模式中的主要思想。全书共分四个部分:第一部分介绍C++、UML、Qt、模型-视图、SQL、XML、设计模式等基础知识,目的是为零基础的C++初学者铺垫一条学习面向对象编程的快捷之路;第二部分讲解内存访问、继承等重要的C++特性,是前一部分的延伸和拓展;第三部分使用Phonon编写了一个多媒体播放器,展示了主要技术理念的应用方法;附录部分给出了C++保留关键字、Debian和Qt程序开发环境的配置等内容。每节的练习题和各章后面的复习题,既可作为课堂上的讨论题,也可进一步启发读者对于关键知识点的思考。 【页数】:508【读者对象】本书可作为软件开发人员学习Qt开发技术的参考书,也可作为从事Qt软件开发的研究人员和科技工作者的工具书。【前言】 序  我仍记得我是如何初识C++和Qt的。大约15年前,那时正忙于我的毕业论文,当时,我所做的大部分开发工作都是用FORTRAN和C语言完成的。我工作的Linux系统使用FVWM作为窗口管理器。有一天,我读到了一篇关于KDE的文章,KDE是一个为Linux创建桌面环境的超酷的新开源项目。由于对Linux所提供的用户接口的确不是很满意,我就下载、编译并安装了KDE软件。  KDE使用Qt作为底层框架。在使用一段时间后,我开始向KDE项目贡献代码。尽管大学时已经学习过面向对象编程,但在使用Qt为KDE做开发后才开始真正学会并理解其中的许多概念。  作为一种编程语言,C++在某些方面上还不够完善。大多数的其他语言,如Java、Python或者C#都提供了相对完备的框架集。然而,C++标准库的范围仅局限在底层的功能、容器和算法方面。  强大而复杂的编程语言(例如C++)和使用了C++全部高级特性但范围有限的标准库的结合,对那些打算使用C++进行开发工作的开发人员造成了极大的学习困难。  这就是Qt的用武之地。Qt是一个全面的、高质量的框架,可用于专业级应用程序开发。Qt涵盖了标准库中缺少的大多数功能,比如线程化、Unicode支持、XML处理以及最为重要的——创建图形用户界面(Graphical User Interface,GUI)的方法。  当我用C++写下第一段代码时,用的就是Qt。Qt让我第一个项目的开发工作变得简单了,并且让我在开发真正应用程序过程中学习新的C++概念时变得更为轻松。工作中使用Qt的确很有趣,因此很快我就用Qt和C++把所有使用其他语言的工作都移植了过来。  Qt一直专注于提供一个直观且易用的API集合,这种框架的重心始终是帮助开发人员完成他们的工作。这种关注点又经常会获得某些优雅的设计模式,比如信号/槽机制,这让面向对象编程显得更加方便和直观。  这本书试图将C++和Qt融合在一起进行讲授。利用Qt创建可视化的结果非常容易,通常只需很少的几行代码。这有助于解决作为语言的C++的复杂性,让C++的学习变得更有趣,并可调动学生继续学习的积极性。  一个人要想成为一名优秀作家,就必须先阅读许多好的作品;一个人要想成为一名好的作曲家,就必须先听一些好的音乐。这一点同样适用于软件开发人员。工作中使用由专家们设计出的库,对于成为一名好的软件开发人员至关重要。拥有该库的源代码会有助于开发人员理解许多细节,这也会成为发现灵感甚至或许是找到一些问题解决方案的地方。LGPL①授权的Qt让每个人都可以获得其源代码。  每一名C++学员都应当同时学习Qt,本书致力于同时兼顾这两个重点。Qt用户倾向于对这个框架充满激情,两位作者也不例外。本书利用开发的许多应用程序截图涵盖了更多的Qt技术。  学习应用程序开发从没有像今天这样轻松过。Qt提供了一个包罗万象的、自由的集成开发包,其中提供了一个集成开发环境(Integrated Development Environment,IDE)、一个编译器、一个调试器、一些Qt库和工具,还提供了数以千计的示例程序以及范例文档。  以前,许多软件开发人员新手往往会卡在开发工作中,因为没有合适的指南,或者晦涩编码工作的结果往往不会产生出足够的价值。利用Qt,只需用很少的代码即可创造更多的效益。如果需要将软件迁移到其他平台,比如移动电话、嵌入式硬件、Mac、Windows、Linux桌面以及其他地方,所需的工作只是重新编译。构建Qt的那些人做了所有可能的事情,以让开发人员的生活变得尽可能简单。本书就是为开发人员而准备的指南。  我们希望你有朝一日会成为一名真正的C++开发人员,对KDE有所贡献,或者对某个使用Qt的开源项目有所贡献,并且能够享受这一过程。或许,你也可以像今天数以万计的开发人员所做的那样,靠编写Qt软件为生。机会就在这里——为训练有素的Qt工程师提供的工作岗位每年都在增加中。  本书针对的不仅是那些C++和Qt新手,有经验的软件开发人员也可以从书中许多令人惊叹的新想法中获得价值。由于本书有大量的索引,因而也可以作为一份不错的参考资料。  今天,Qt的开发工作对Qt工程师以及工作于同一个代码库的广大社区人员都是开放的。我们希望有一天你也可以向Qt贡献代码,或者以另一种方式向Qt生态系统添砖加瓦,就像作者在这本书中所完成的工作那样。  Lars Knoll Qt研发团队主管

书籍规格:

书籍详细信息
书名C++ Qt设计模式站内查询相似图书
9787121168901
如需购买下载《C++ Qt设计模式》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)69.0语种简体中文
尺寸26 × 18装帧平装
页数 500 印数

书籍信息归属:

C++ Qt设计模式是电子工业出版社于2012.5出版的中图分类号为 TP312 的主题关于 C语言-程序设计 的书籍。