第1章 案例的选择与评估 1
1.1案例的初步选择 1
1.2案例的定量评估 3
1.3其他案例 5
1.4基本约定 6
1.5关于类图的约定 8
第2章 Qt概述 11
2.1Qt版权 13
2.2Qt库的编译 14
2.3开发环境的设置 16
2.4主控台的输入与输出 18
2.5Qt风格的编程规范 19
2.6与Qt及C++相关的文献资源 21
第3章 类模板特化 24
3.1类模板特化 24
3.2Traits技术 27
3.3类型分类(Type Classification)技术 28
3.4降低代码膨胀 30
第4章 标准库及Qt对字符串的处理 32
4.1字符及其编码 32
4.2标准库的类模板basic_string 34
4.3Qt的类Qstring 37
第5章 国际化与区域文化 41
5.1区域文化 41
5.2facet 44
5.3类locale的实现 50
5.4类模板facet的实现 52
5.5派生新的facet类 53
第6章C++的iostream 56
6.1C语言的scanf/printf函数组 56
6.2iostream的总体结构 57
6.3字符特征的描述 61
6.4模板特化后的总体结构 64
6.5文件流 65
6.6字符串流 71
6.7流缓冲区 73
6.8二进制文件的处理 76
6.9用户自定义类型的输入和输出 77
第7章Qt的流 79
7.1文件系统及底层文件操作 80
7.2类QTextStream 81
7.3类QDataStream 83
7.4类QLocale 86
7.5 iostream和Qt流类的比较 87
第8章 隐式共享与d-pointer技术 88
8.1隐式共享 88
8.2 d-pointer在隐式共享中的应用 90
8.3二进制代码兼容 92
8.4 d-pointer模式的实现 96
8.5 QObject中的d-pointer 98
第9章 Qt容器与迭代器 101
9.1 QTL概述 101
9.2 QTL容器和QDataStream的无缝连接 107
9.3类型分类技术在QList中的应用 109
9.4函子的应用——相关词词典 112
第10章 多线程与可重入 115
10.1创建一个线程 116
10.2线程间同步 116
10.3线程安全与可重入 121
10.4多线程环境下的singleton模式 122
第11章 信号与槽(Signals and Slots) 134
11.1对象树(QObject Tree) 134
11.2信号与槽机制 135
11.3信号与槽的应用例子 140
第12章GraphicsNiew框架 145
12.1 Qt图形系统介绍 145
12.2 Graphics/View框架 146
12.3例子——相撞的老鼠 147
第13章Model/View框架 152
13.1 Model/View框架总体架构 154
13.2模型(Models) 157
13.3视图(Views) 179
13.4选择操作 180
13.5委托(Delegates) 185
13.6代理模型(Proxy Models) 188
13.7便利视图类 199
第14章Qt中的命令模式 206
14.1 Qt的Undo Framework 206
14.2使用Undo Framework的一个例子 211
第15章Qt中的抽象工厂模式 215
15.1抽象工厂模式简介 215
15.2 QTextCodec及其子类的定义 217
15.3界面风格 220
第16章Qt中的观察者模式 235
16.1事件处理机制 236
16.2事件滤波器 237
16.3一个简单的例子——图像浏览器 239
16.4一个有趣的例子——鼠标手势 240
第17章Qt的元对象系统 252
17.1 C++ RTTI (Run-time Type Information) 252
17.2 Qt的元对象系统 258
第18章 智能指针 263
18.1 QPointer 263
18.2 QSharedDataPointer 275
参考文献 282
索引 284