书籍作者:霍亚飞 | ISBN:9787512423046 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7536 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书是基于QtCreator集成开发环境的入门书籍,详细介绍了QtCreator开发环境的使用和Qt基本知识点的应用。本书内容主要包括Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和
网络通信方面的应用内容。与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到
Qt5等相关附录,从而帮助初学者快速入门Qt5编程。
本书内容全面、实用,讲解通俗易懂,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者,也适合想从Qt4跨入Qt5编程的读者。对于想学习QML及QtQuick编程的读者,可以学习《Qt5 编程入门》一书;想进一步学习Qt开发实例的读者,可以学习《Qt及QtQuick开发实战精解》一书。
两年前,当本书编写第2版时,Qt5已经上市,当时基于多方面考虑,没有更新到Qt5版本。后来为了满足广大读者的需要,出版了《Qt5编程入门》,但是与书名不符的是,里面主要包含了QML和QtQuick的内容,因为从某方面而言,Qt5最大的更新其实就是QtQuick。而对于本书涉及的C++ Widgets编程,在网站上提供了相应的迁移教程,帮助读者将Qt4程序迁移到Qt5。
之所以迟迟没有将本书更新到Qt5,是因为作者感觉还不是时候。直到今年3月Qt推出了5.6版本,并且是Qt5以来第一个长期支持版本,提供3年的安全更新和漏洞修复,作者感觉是时候将本书进行全面更新、引领读者进入Qt5时代了。
这次改版是基于Qt5.6.1对全书进行修订,修改工作细化到每一句讲解、每一行代码、每一张图片,确保所有内容都得到更新,整体工作量不亚于重写全书。其中,较大的改动是重写了第12章3D绘图、第13~14章多媒体内容、第20章WebKit,因为Qt4中相关模块被Qt5中新的模块代替,具体更改可以参见关章节。这次改版对Qt5的更新以及将程序从Qt4迁移到Qt5做了全面介绍,但是为了不影响初学者的主线学习,将这些内容放到了附录中。
本系列丛书现在包括3本:《QtCreator快速入门》、《Qt及QtQuick开发实战精解》、《Qt5编程入门》。由于历史原因,这3本书的书名可能无法代表其中的内容,这里做一下说明。
《QtCreator快速入门》讲解了经典的C++ Widgets编程,是Qt最基础和最核心的内容,也是Qt入门必学的内容,现在最新版本为第3版,基于Qt5.6.1和QtCreator4.0.1。
《Qt5编程入门》讲解了QML语言、QtQuick编程和移动开发相关内容,主要用于为移动设备开发动态触摸式界面,QML和QtQuick虽然是全新的语言和内容,但是其包含在Qt框架之中,很多机制、理念都与经典的C++ Widgets编程一致,所以建议先学习《QtCreator快速入门》,再来学习本书,现在最新版本是即将出版的第2版,将基于Qt5.7。
《Qt及QtQuick开发实战精解》以前包括了C++ Widgets综合实例程序和QtQuick的基础内容,因为现在QtQuick的基础内容已经编写到了《Qt5编程入门》中,所以,今后该书的定位是C++ Widgets综合实例程序和QtQuick综合实例程序,现在最新版本是即将出版的第2版,将基于Qt5.7。
《QtCreator快速入门(第3版)》出版后,《Qt5编程入门(第2版)》和《Qt及QtQuick开发实战精解(第2版)》也会很快出版,这样本系列丛书已经基本成型,将覆盖Qt几乎全部基础内容,并提供应用了所有知识点的综合实例程序,读者使用该系列丛书可以轻松入门Qt编程世界。
最后感谢北京航空航天大学出版社的编辑和那些关注、爱好Qt的朋友们,是他们的支持和帮助,才让作者一直坚持下来。一些朋友还参与了该系列丛书的审校和代码审核工作,他们是吴迪wd007)、白建平(XChinux)、董世明、程梁(豆子)、刘柏燊(紫侠)和周慧宗(hzzhou)等,是众多朋友的认真工作,才使得该系列丛书可以成为经典作品,这里对他们的付出表示感谢。
霍亚飞
2016年11月
第1篇 基本应用篇
第1章 QtCreator简介………………………………………………………………… 2
1.1 QtCreator的下载与安装……………………………………………………… 2
1.2 QtCreator环境介绍…………………………………………………………… 3
1.2.1 运行一个示例程序………………………………………………………… 6
1.2.2 帮助模式…………………………………………………………………… 8
1.3 Qt工具简介…………………………………………………………………… 10
1.3.1 QtAssistant(Qt助手)…………………………………………………… 10
1.3.2 QtDesigner(Qt设计师)………………………………………………… 11
1.3.3 QtLinguist(Qt语言家) ………………………………………………… 11
1.4 小 结…………………………………………………………………………… 12
第2章 HelloWorld …………………………………………………………………… 13
2.1 编写HelloWorld程序………………………………………………………… 13
2.1.1 新建QtWidgets应用…………………………………………………… 13
2.1.2 文件说明与界面设计……………………………………………………… 16
2.2 程序的运行与发布……………………………………………………………… 18
2.2.1 程序的运行………………………………………………………………… 18
2.2.2 程序的发布………………………………………………………………… 21
2.2.3 设置应用程序图标………………………………………………………… 23
2.3 helloworld程序源码与编译过程详解………………………………………… 24
2.3.1 纯代码编写程序与命令行编译…………………………………………… 25
2.3.2 使用.ui文件……………………………………………………………… 31
2.3.3 自定义C++类…………………………………………………………… 35
2.3.4 使用Qt设计师界面类…………………………………………………… 38
2.4 项目模式和项目文件介绍……………………………………………………… 39
2.4.1 项目模式…………………………………………………………………… 39
2.4.2 项目文件…………………………………………………………………… 40
2.4.3 关于本书源码的使用……………………………………………………… 41
2.5 小 结…………………………………………………………………………… 41
第3章 窗口部件……………………………………………………………………… 42
3.1 基础窗口部件QWidget ……………………………………………………… 42
3.1.1 窗口、子部件以及窗口类型……………………………………………… 43
3.1.2 窗口几何布局……………………………………………………………… 46
3.1.3 程序调试…………………………………………………………………… 46
3.2 对话框QDialog………………………………………………………………… 50
3.2.1 模态和非模态对话框……………………………………………………… 50
3.2.2 多窗口切换………………………………………………………………… 51
3.2.3 标准对话框………………………………………………………………… 56
3.3 其他窗口部件…………………………………………………………………… 63
3.3.1 QFrame类族……………………………………………………………… 63
3.3.2 按钮部件…………………………………………………………………… 67
3.3.3 QLineEdit ………………………………………………………………… 68
3.3.4 QAbstractSpinBox ……………………………………………………… 71
3.3.5 QAbstractSlider ………………………………………………………… 72
3.4 小 结…………………………………………………………………………… 72
第4章 布局管理……………………………………………………………………… 73
4.1 布局管理系统…………………………………………………………………… 73
4.1.1 布局管理器………………………………………………………………… 74
4.1.2 设置部件大小……………………………………………………………… 77
4.1.3 可扩展窗口………………………………………………………………… 80
4.1.4 分裂器(QSplitter)………………………………………………………… 81
4.2 设置伙伴(buddy)……………………………………………………………… 82
4.3 设置Tab键顺序……………………………………………………………… 83
4.4 QtCreator中的定位器………………………………………………………… 83
4.5 小 结…………………………………………………………………………… 84
第5章 应用程序主窗口……………………………………………………………… 85
5.1 主窗口框架……………………………………………………………………… 85
5.1.1 Qt资源系统、菜单栏和工具栏…………………………………………… 86
5.1.2 中心部件…………………………………………………………………… 91
5.1.3 Dock部件………………………………………………………………… 92
5.1.4 状态栏……………………………………………………………………… 93
5.1.5 自定义菜单………………………………………………………………… 93
5.2 富文本处理……………………………………………………………………… 96
5.2.1 富文本文档结构…………………………………………………………… 96
5.2.2 文本块……………………………………………………………………… 98
5.2.3 表格、列表与图片………………………………………………………… 101
5.2.4 查找功能………………………………………………………………… 102
5.2.5 语法高亮与HTML …………………………………………………… 104
5.3 拖放操作……………………………………………………………………… 106
5.3.1 使用拖放打开文件……………………………………………………… 106
5.3.2 自定义拖放操作………………………………………………………… 107
5.4 打印文档……………………………………………………………………… 111
5.5 小 结………………………………………………………………………… 114
第6章 事件系统……………………………………………………………………… 115
6.1 Qt中的事件…………………………………………………………………… 115
6.1.1 事件的处理……………………………………………………………… 116
6.1.2 事件的传递……………………………………………………………… 116
6.2 鼠标事件和滚轮事件………………………………………………………… 120
6.3 键盘事件……………………………………………………………………… 122
6.4 定时器事件与随机数………………………………………………………… 126
6.5 事件过滤器与事件的发送…………………………………………………… 128
6.6 小 结………………………………………………………………………… 130
第7章 Qt对象模型与容器类……………………………………………………… 131
7.1 对象模型……………………………………………………………………… 131
7.1.1 信号和槽………………………………………………………………… 132
7.1.2 属性系统………………………………………………………………… 139
7.1.3 对象树与拥有权………………………………………………………… 142
7.1.4 元对象系统……………………………………………………………… 144
7.2 容器类………………………………………………………………………… 145
7.2.1 Qt的容器类介绍………………………………………………………… 146
7.2.2 遍历容器………………………………………………………………… 150
7.2.3 通用算法………………………………………………………………… 156
7.2.4 QString ………………………………………………………………… 158
7.2.5 QByteArray和QVariant ……………………………………………… 163
7.3 正则表达式…………………………………………………………………… 165
7.3.1 正则表达式介绍………………………………………………………… 165
7.3.2 正则表达式组成元素…………………………………………………… 167
7.3.3 文本捕获………………………………………………………………… 170
7.3.4 新的QRegularExpression类…………………………………………… 171
7.4 小 结………………………………………………………………………… 173
第8章 界面外观……………………………………………………………………… 174
8.1 Qt风格………………………………………………………………………… 174
8.2 Qt样式表……………………………………………………………………… 177
8.2.1 Qt样式表介绍…………………………………………………………… 177
8.2.2 Qt样式表语法…………………………………………………………… 178
8.2.3 自定义部件外观与换肤………………………………………………… 181
8.3 特殊效果窗体………………………………………………………………… 185
8.3.1 不规则窗体……………………………………………………………… 185
8.3.2 透明窗体………………………………………………………………… 186
8.3.3 实现Windows7毛玻璃效果…………………………………………… 189
8.4 小 结………………………………………………………………………… 190
第9章 国际化、帮助系统和Qt插件……………………………………………… 191
9.1 国际化………………………………………………………………………… 191
9.1.1 使用QtLinguist翻译应用程序……………………………………… 191
9.1.2 程序翻译中的相关问题………………………………………………… 196
9.2 帮助系统……………………………………………………………………… 199
9.2.1 简单的帮助提示………………………………………………………… 199
9.2.2 定制QtAssistant ……………………………………………………… 199
9.3 创建Qt插件………………………………………………………………… 207
9.3.1 在设计模式提升窗口部件……………………………………………… 207
9.3.2 创建应用程序插件……………………………………………………… 208
9.3.3 创建QtDesigner自定义部件………………………………………… 212
9.4 小 结………………………………………………………………………… 214
第2篇 图形动画篇
第10章 2D 绘图……………………………………………………………………… 216
10.1 基本绘制和填充……………………………………………………………… 216
10.1.1 基本图形的绘制和填充………………………………………………… 217
10.1.2 渐变填充………………………………………………………………… 222
10.2 坐标系统……………………………………………………………………… 225
10.2.1 抗锯齿渲染……………………………………………………………… 226
10.2.2 坐标变换………………………………………………………………… 228
10.3 其他绘制……………………………………………………………………… 235
10.3.1 绘制文字………………………………………………………………… 235
10.3.2 绘制路径………………………………………………………………… 236
10.3.3 绘制图像………………………………………………………………… 239
10.3.4 复合模式………………………………………………………………… 244
10.4 双缓冲绘图…………………………………………………………………… 246
10.5 绘图中的其他问题…………………………………………………………… 248
10.6 小 结………………………………………………………………………… 250
第11章 图形视图、动画和状态机框架……………………………………………… 251
11.1 图形视图框架的结构………………………………………………………… 251
11.1.1 场 景…………………………………………………………………… 252
11.1.2 视 图…………………………………………………………………… 253
11.1.3 图形项…………………………………………………………………… 255
11.2 图形视图框架的坐标系统和事件处理……………………………………… 257
11.2.1 坐标系统………………………………………………………………… 257
11.2.2 事件处理与传播………………………………………………………… 262
11.3 图形视图框架的其他特性…………………………………………………… 267
11.3.1 图形效果………………………………………………………………… 267
11.3.2 动画、碰撞检测和图形项组…………………………………………… 268
11.3.3 打印和使用OpenGL进行渲染……………………………………… 271
11.3.4 窗口部件、布局和内嵌部件…………………………………………… 272
11.4 动画框架……………………………………………………………………… 274
11.4.1 实现属性动画…………………………………………………………… 275
11.4.2 使用缓和曲线…………………………………………………………… 276
11.4.3 动画组…………………………………………………………………… 276
11.4.4 在图形视图框架中使用动画…………………………………………… 278
11.5 状态机框架…………………………………………………………………… 280
11.5.1 创建状态机……………………………………………………………… 280
11.5.2 在状态机中使用动画…………………………………………………… 281
11.5.3 状态机框架的其他特性………………………………………………… 283
11.6 小 结………………………………………………………………………… 290
第12章 3D 绘图……………………………………………………………………… 291
12.1 使用OpenGL绘制图形介绍……………………………………………… 291
12.2 绘制多边形…………………………………………………………………… 295
12.2.1 使用顶点数组…………………………………………………………… 295
12.2.2 使用缓存………………………………………………………………… 297
12.3 绘制彩色3D图形…………………………………………………………… 297
12.3.1 为图形设置顶点颜色…………………………………………………… 298
12.3.2 实现3D效果…………………………………………………………… 299
12.4 使用纹理贴图………………………………………………………………… 300
12.5 小 结………………………………………………………………………… 303
第3篇 影音媒体篇
第13章 音视频播放………………………………………………………………… 305
第14章 相机和音频录制…………………………………………………………… 322
第4篇 数据处理篇
第15章 文件、目录和输入/输出…………………………………………………… 336
第16章 模型/视图编程……………………………………………………………… 349
第17章 数据库和XML …………………………………………………………… 380
第5篇 网络通信篇
第18章 网络编程…………………………………………………………………… 413
第19章 进程和线程………………………………………………………………… 446
第20章 QtWebEngine ……………………………………………………………… 465
附录A Qt5简介…………………………………………………………………… 477