《Qt Creator快速入门(第4版)》是由北京航空航天大学出版社出版的一本关于Qt Creator方面的书籍,作者是霍亚飞,主要介绍了关于Qt、Creator方面的知识内容,目前在Qt Creator类书籍综合评分为:8.5分。
书籍介绍
内容简介
本书是基于QtCreator集成开发环境的入门书籍,讲解了经典的桌面端CWidgets编程和QtCreator开发环境的使用。本书内容主要包括Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和网络通信方面的应用内容。与第3版相比,本书使用Qt6.2.3和QtCreator6.0.2进行了全书修订,主要添加了第18章Qt图表和数据可视化内容,重写了第7章正则表达式部分和第13、14章多媒体应用的大部分内容。
目录
- 第1篇基本应用篇
- 第1章QtCreator简介2
- 1.1软件的下载与安装2
- 1.2QtCreator环境介绍3
- 1.2.1运行一个示例程序6
- 1.2.2帮助模式8
- 1.3Qt工具简介10
- 1.3.1QtAssistant(Qt助手)10
- 1.3.2QtDesigner(Qt设计师)10
- 1.3.3QtLinguist(Qt语言家)11
- 1.4关于本书源码的使用11
- 1.5小结11
- 第2章HelloWorld13
- 2.1编写HelloWorld程序13
- 2.1.1新建QtWidgets应用13
- 2.1.2文件说明与界面设计15
- 2.2程序的运行与发布17
- 2.2.1程序的运行17
- 2.2.2程序的发布20
- 2.2.3设置应用程序图标21
- 2.3项目模式和项目文件介绍22
- 2.3.1项目模式22
- 2.3.2项目文件22
- 2.4helloworld程序源码与编译过程详解23
- 2.4.1在QtCreator中使用纯代码编写并编译运行程序24
- 2.4.2使用其他编辑器纯代码编写程序并在命令行编译运行程序27
- 2.4.3使用.ui文件来生成界面30
- 2.4.4自定义C窗口类33
- 2.4.5使用现成的Qt设计师界面类36
- 2.5小结37
- 第3章窗口部件38
- 3.1基础窗口部件QWidget38
- 3.1.1窗口、子部件以及窗口类型39
- 3.1.2窗口几何布局41
- 3.1.3程序调试42
- 3.2对话框QDialog45
- 3.2.1模态和非模态对话框45
- 3.2.2初识信号和槽并实现多窗口切换47
- 3.2.3标准对话框51
- 3.3其他窗口部件57
- 3.3.1QFrame类族57
- 3.3.2按钮部件60
- 3.3.3QLineEdit62
- 3.3.4QAbstractSpinBox64
- 3.3.5QAbstractSlider65
- 3.4小结66
- 第4章布局管理67
- 4.1布局管理系统67
- 4.1.1布局管理器简介68
- 4.1.2基本布局管理器68
- 4.1.3栅格布局管理器69
- 4.1.4窗体布局管理器70
- 4.1.5综合使用布局管理器70
- 4.1.6设置部件大小71
- 4.1.7可扩展窗口74
- 4.1.8拆分器74
- 4.2设置伙伴75
- 4.3设置Tab键顺序75
- 4.4QtCreator中的定位器76
- 4.5小结77
- 第5章应用程序主窗口78
- 5.1主窗口框架78
- 5.1.1Qt资源系统、菜单栏和工具栏79
- 5.1.2中心部件84
- 5.1.3Dock部件85
- 5.1.4状态栏85
- 5.1.5自定义菜单86
- 5.2富文本处理89
- 5.2.1富文本文档结构89
- 5.2.2文本块90
- 5.2.3表格、列表与图片93
- 5.2.4查找功能94
- 5.2.5语法高亮与HTML96
- 5.3拖放操作97
- 5.3.1使用拖放打开文件98
- 5.3.2自定义拖放操作99
- 5.4打印文档102
- 5.5小结104
- 第6章事件系统105
- 6.1Qt中的事件105
- 6.1.1事件的处理106
- 6.1.2事件的传递106
- 6.2鼠标事件和滚轮事件109
- 6.3键盘事件112
- 6.4定时器事件与随机数115
- 6.5事件过滤器与事件的发送117
- 6.6小结119
- 第7章Qt对象模型与容器类120
- 7.1对象模型120
- 7.2信号和槽121
- 7.2.1信号和槽概述121
- 7.2.2信号和槽典型应用示例122
- 7.2.3信号和槽的关联123
- 7.2.4信号和槽的自动关联126
- 7.2.5信号和槽断开关联127
- 7.2.6信号和槽的高级应用128
- 7.3属性系统128
- 7.4对象树与拥有权131
- 7.5元对象系统134
- 7.6容器类135
- 7.6.1Qt的容器类135
- 7.6.2遍历容器139
- 7.6.3常用的STL算法145
- 7.6.4QString147
- 7.6.5QByteArray和QVariant151
- 7.6.6隐式共享153
- 7.7正则表达式154
- 7.7.1正则表达式语法简介155
- 7.7.2正常匹配和文本捕获161
- 7.7.3全局匹配163
- 7.7.4部分匹配164
- 7.7.5通配符匹配167
- 7.8小结168
- 第8章界面外观169
- 8.1Qt风格169
- 8.2Qt调色板170
- 8.3Qt样式表172
- 8.3.1使用代码设置样式表172
- 8.3.2在设计模式中设置样式表173
- 8.4Qt样式表语法174
- 8.5自定义部件外观与换肤176
- 8.5.1盒子模型176
- 8.5.2自定义部件外观177
- 8.5.3实现换肤功能178
- 8.6特殊效果窗体179
- 8.6.1不规则窗体179
- 8.6.2透明窗体181
- 8.7小结183
- 第9章国际化、帮助系统和Qt插件184
- 9.1国际化184
- 9.1.1使用QtLinguist翻译应用程序184
- 9.1.2使用QtCreator自动生成翻译文件189
- 9.1.3程序翻译中的相关问题190
- 9.2帮助系统192
- 9.2.1简单的帮助提示192
- 9.2.2定制QtAssistant193
- 9.3创建Qt插件200
- 9.3.1在设计模式提升窗口部件200
- 9.3.2创建应用程序插件201
- 9.3.3创建QtDesigner自定义部件205
- 9.4小结206
- 第2篇图形动画篇
- 第10章2D绘图208
- 10.1基本图形的绘制和填充208
- 10.1.1绘制图形208
- 10.1.2使用画笔210
- 10.1.3使用画刷211
- 10.2渐变填充214
- 10.3坐标系统216
- 10.3.1抗锯齿渲染216
- 10.3.2坐标变换219
- 10.4绘制文字225
- 10.5绘制路径226
- 10.5.1组成一个路径226
- 10.5.2填充规则227
- 10.6绘制图像229
- 10.6.1QImage230
- 10.6.2QPixmap231
- 10.6.3QPicture233
- 10.7复合模式234
- 10.8双缓冲绘图235
- 10.9绘图中的其他问题237
- 10.10小结239
- 第11章图形视图、动画和状态机框架240
- 11.1图形视图框架的结构240
- 11.1.1场景241
- 11.1.2视图242
- 11.1.3图形项243
- 11.2图形视图框架的坐标系统和事件处理245
- 11.2.1坐标系统245
- 11.2.2事件处理与传播250
- 11.3图形视图框架的其他特性255
- 11.3.1图形效果255
- 11.3.2动画、碰撞检测和图形项组256
- 11.3.3打印和使用OpenGL进行渲染259
- 11.3.4图形部件、布局和内嵌部件260
- 11.4动画框架261
- 11.4.1实现属性动画262
- 11.4.2使用缓和曲线263
- 11.4.3动画组264
- 11.4.4在图形视图框架中使用动画265
- 11.5状态机框架267
- 11.5.1创建状态机267
- 11.5.2在状态机中使用动画269
- 11.5.3状态机框架的其他特性270
- 11.6小结277
- 第12章3D绘图278
- 12.1使用OpenGL绘制图形278
- 12.2绘制多边形282
- 12.2.1使用顶点数组282
- 12.2.2使用缓存283
- 12.3绘制彩色3D图形284
- 12.3.1为图形设置顶点颜色284
- 12.3.2实现3D效果285
- 12.4使用纹理贴图287
- 12.5小结290
- 第3篇影音媒体篇
- 第13章音视频播放292
- 13.1播放音频293
- 13.1.1播放压缩音频293
- 13.1.2低延迟声音效果293
- 13.2播放视频295
- 13.2.1播放视频文件295
- 13.2.2使用QMovie播放GIF文件297
- 13.3QMediaPlayer299
- 13.3.1播放状态301
- 13.3.2获取媒体元数据304
- 13.4小结305
- 第14章相机和音频录制306
- 14.1使用相机306
- 14.1.1相机QCamera306
- 14.1.2使用相机进行拍照307
- 14.1.3使用相机进行视频录制308
- 14.1.4对相机进行设置310
- 14.2录制音频311
- 14.3小结314
- 第4篇数据处理篇
- 第15章文件、目录和输入/输出316
- 15.1输入/输出设备316
- 15.2文件操作317
- 15.3目录操作320
- 15.4文本流和数据流323
- 15.4.1使用文本流读/写文本文件323
- 15.4.2使用数据流读/写二进制数据324
- 15.5其他相关类326
- 15.6小结328
- 第16章模型/视图编程329
- 16.1模型/视图架构329
- 16.1.1组成部分330
- 16.1.2简单的例子331
- 16.2模型类332
- 16.2.1基本概念332
- 16.2.2创建新的模型336
- 16.3视图类340
- 16.3.1基本概念340
- 16.3.2处理项目选择341
- 16.4委托类346
- 16.4.1基本概念346
- 16.4.2自定义委托346
- 16.5项目视图的便捷类349
- 16.5.1QListWidget349
- 16.5.2QTreeWidget350
- 16.5.3QTableWidget351
- 16.5.4共同特性351
- 16.6在项目视图中启用拖放352
- 16.6.1在便捷类中启用拖放352
- 16.6.2在模型/视图类中启用拖放353
- 16.7其他内容356
- 16.7.1代理模型356
- 16.7.2数据窗口映射器357
- 16.8小结358
- 第17章数据库和XML359
- 17.1数据库简介359
- 17.2连接数据库360
- 17.2.1SQL数据库驱动360
- 17.2.2创建数据库连接361
- 17.3执行SQL语句364
- 17.4使用SQL模型类368
- 17.4.1SQL查询模型368
- 17.4.2SQL表格模型370
- 17.4.3SQL关系表格模型373
- 17.5XML374
- 17.5.1使用DOM读取XML文档374
- 17.5.2使用DOM创建和操作XML文档377
- 17.5.3XML流382
- 17.6小结385
- 第18章Qt图表和数据可视化386
- 18.1Qt图表(QtCharts)386
- 18.1.1Qt图表示例386
- 18.1.2坐标轴390
- 18.1.3使用外部数据动态创建图表394
- 18.2Qt数据可视化397
- 18.2.13D柱形图示例398
- 18.2.2项目模型和数据映射403
- 18.2.33D散点图和3D曲面图示例405
- 18.3小结406
- 第5篇网络通信篇
- 第19章网络编程408
- 19.1网络访问API408
- 19.1.1网络访问API相关类408
- 19.1.2HTTP通信程序示例409
- 19.2获取网络接口信息412
- 19.2.1QHostInfo进行主机名查找412
- 19.2.2QNetworkInterface获取本机网络接口信息414
- 19.2.3QDnsLookup进行DNS查询415
- 19.3UDP416
- 19.3.1UDP简介416
- 19.3.2UDP广播程序示例416
- 19.4TCP418
- 19.4.1TCP简介418
- 19.4.2TCP传输字符串示例419
- 19.4.3TCP传输文件示例423
- 19.5小结430
- 第20章进程和线程431
- 20.1进程431
- 20.1.1运行一个进程431
- 20.1.2进程间通信434
- 20.2线程437
- 20.2.1使用QThread启动线程438
- 20.2.2同步线程442
- 20.2.3可重入与线程安全445
- 20.2.4线程和QObject447
- 20.3小结449
- 第21章QtWebEngine450
- 21.1QtWebEngine架构450
- 21.2基于QtWebEngineWidgets的网页浏览器451
- 21.2.1显示一个网页452
- 21.2.2网站图标和网页缩放454
- 21.2.3显示历史记录456
- 21.2.4查找功能和多窗口显示457
- 21.3小结459
- 附录A安装MSVC版本Qt460
- A.1安装MSVC版本Qt460
- A.2下载并安装VS2019461
- A.3使用新套件构建程序461
- 附录BQtCreator键盘快捷键速查463
- 参考文献466