第1章 类和对象 1
1.1 面向对象程序设计 1
1.2 类的声明和对象创建 4
1.2.1 如何声明一个类 4
1.2.2 定义和使用对象 5
1.2.3 对象的指针和引用 7
1.3 公有成员和私有成员 10
1.3.1 公有和私有成员的权限 10
1.3.2 私有变量内容的设置和获取 13
1.4 构造函数和析构函数 15
1.4.1 构造函数的定义 15
1.4.2 函数重载与构造函数 17
1.4.3 如何调用构造函数 18
1.4.4 构造函数的初始化列表 22
1.4.5 析构函数的定义及作用 23
1.5 类的静态成员 25
习题1 26
第2章 类的继承和多态 28
2.1 继承和多态的概念 28
2.2 类的继承 29
2.2.1 派生类的定义 29
2.2.2 类的公有继承方式 30
2.2.3 类的私有继承方式 33
2.2.4 类的保护继承方式 36
2.2.5 类成员访问方式小结 37
2.2.6 派生类的构造和析构函数 38
2.3 类的多态性 41
2.3.1 多态性的两种形式 41
2.3.2 派生类对象转换为基类对象 43
2.3.3 虚函数定义及使用 45
2.3.4 纯虚函数和抽象类 47
2.3.5 运算符重载 50
习题2 52
第3章 初识Qt开发框架 54
3.1 Qt的历史渊源 54
3.2 安装Qt开发系统 54
3.2.1 Qt系统下载 54
3.2.2 Qt Creator简介 55
3.3 创建一个简单程序 57
3.3.1 手工编码方式 57
3.3.2 无UI的向导方式 58
3.3.3 Qt设计器方式 60
3.4 信号和槽通信机制 64
3.4.1 信号 65
3.4.2 槽 65
3.4.3 关联信号与槽 66
3.4.4 信号和槽举例 66
3.5 如何发现程序的错误 69
3.6 字符类和字符串类 70
3.6.1 字符类QChar 70
3.6.2 字符串类QString 71
习题3 75
第4章 基本窗口及控件 77
4.1 基本窗口类QWidget 77
4.2 窗口控件类概览 79
4.3 标签 80
4.4 按钮 81
4.5 单选按钮、复选框 83
4.6 组合框 85
4.7 列表框 86
4.8 单行编辑框 88
4.9 滑动条 89
4.10 进度条 90
4.11 抽屉效果 92
4.12 选项卡控件 93
4.13 层叠窗体 95
4.14 树状控件 96
4.15 表格控件 98
4.16 富文本控件 101
习题4 103
第5章 主窗口及对话框 105
5.1 主窗口区域划分 105
5.2 菜单、工具栏和状态栏 106
5.2.1 手工添加菜单及工具栏 106
5.2.2 用设计器添加菜单和工具栏 108
5.3 对话框基础知识 110
5.3.1 模态和非模态对话框 110
5.3.2 通过对话框传递数据 113
5.3.3 标准对话框 119
习题5 125
第6章 布局管理及多窗口技术 126
6.1 控件布局管理 126
6.1.1 水平布局 127
6.1.2 垂直布局 128
6.1.3 网格布局 128
6.1.4 表单布局 132
6.1.5 综合布局实例 134
6.2 窗口的切分与停靠 136
6.2.1 使用QSplitter实现分割窗口 136
6.2.2 可停靠窗口QDockWidget 139
6.3 多文档界面应用程序 141
习题6 143
第7章 事件系统 145
7.1 事件机制概述 145
7.2 事件处理方法示例 148
7.2.1 重新实现事件处理器 148
7.2.2 重新实现event函数 150
7.2.3 在对象中使用事件过滤器 151
7.2.4 在QApplication中注册事件过滤器 153
7.2.5 重新实现notify函数 155
7.3 鼠标事件 156
7.4 键盘事件 158
7.5 定时器的使用 161
7.5.1 QObject类的定时器 161
7.5.2 定时器类QTimer 163
习题7 165
第8章 二维绘图系统 166
8.1 绘图系统简介 166
8.1.1 QPainter类 166
8.1.2 几个绘图相关的类 168
8.1.3 屏幕重绘 171
8.2 画笔和画刷 175
8.2.1 画笔的使用 175
8.2.2 画刷的使用 178
8.3 渐变填充 181
8.3.1 线性渐变 181
8.3.2 辐射渐变 183
8.3.3 锥形渐变 184
8.4 绘制文字 186
8.5 绘制路径 189
8.6 绘制图片 190
8.7 坐标变换 192
8.7.1 平移变换 193
8.7.2 缩放变换 194
8.7.3 扭曲变换 194
8.7.4 旋转变换 195
8.7.5 坐标系的保存与恢复 196
8.8 实例:绘图程序 197
习题8 202
第9章 界面样式表 203
9.1 样式表小试牛刀 203
9.1.1 在Qt设计器中设置样式表 203
9.1.2 在程序中设置样式表 205
9.2 样式表语法基础 207
9.2.1 基本语法格式 207
9.2.2 选择器的类型 207
9.2.3 规则冲突的解决 209
9.3 方盒模型 211
9.3.1 什么是方盒模型 211
9.3.2 方盒模型相关属性 211
9.4 定制控件举例 217
9.4.1 按钮 217
9.4.2 单选按钮和复选框 218
9.4.3 单行文本框 219
9.4.4 进度条 220
9.4.5 滑动条 221
9.4.6 滚动条 222
9.4.7 列表框 224
9.4.8 组合框 225
9.4.9 选项卡 226
9.4.10 表格控件 229
9.4.11 其他控件 229
习题9 231
第10章 编程实战演练 233
10.1 接金币小游戏 233
10.1.1 编程任务描述 233
10.1.2 算法分析 234
10.1.3 编程实现 235
10.2 俄罗斯方块 240
10.2.1 编程任务描述 240
10.2.2 数据结构设计 241
10.2.3 方块移动算法 242
10.2.4 方块旋转算法 243
10.2.5 位图素材准备 244
10.2.6 程序实现过程 246
10.3 游戏大厅界面 258
10.3.1 编程任务描述 258
10.3.2 顶部窗口实现 260
10.3.3 左下方窗口实现 263
10.3.4 主窗体的实现 270
后记 276