书籍详情

Qt 6 C++开发指南

Qt 6 C++开发指南

作者:王维波

出版社:人民邮电出版社

出版时间:2023-01-01

ISBN:9787115602404

定价:¥139.80

购买这本书可以去
内容简介
  本书以Qt 6为开发平台,系统介绍如何用Qt C开发应用程序。首先介绍Qt C应用程序的基本结构、界面可视化设计和布局管理方法、元对象系统的功能及其应用等基本内容,然后深入讲解常用界面组件、模型/视图结构、事件处理、对话框和多窗口程序设计、文件读写等功能的编程方法,以及数据库、多线程、网络、多媒体、图表、数据可视化、串口通信等功能模块的使用。本书内容丰富,辅以大量精心设计的完整示例程序,涵盖进行GUI程序设计所需掌握的各种技术主题。
作者简介
  王维波,博士,中国石油大学(华东)教师,主要从事仪器仪表开发的教学和科研工作。著有《STM32Cube 高效开发教程》,曾开发多个工业应用嵌入式系统和专业数据处理软件。 栗宝鹃,博士,中水北方勘测设计研究有限责任公司高级工程师,主要从事工程勘察、综合地球物理探测与检测中的数据处理、解译与成像等工程应用和研究工作。 侯春望,硕士,中国石油大学(华东)教师,主要从事单片机系统和应用软件开发方面的教学和研究工作,精通Qt C 编程,曾开发多个专业应用软件。
目录
第 1章 认识Qt  1
1.1 Qt简介  1
1.1.1 Qt的跨平台开发能力  1
1.1.2 Qt的许可类型和安装包  2
1.1.3 Qt支持的开发语言  3
1.1.4 Qt 6新特性  4
1.2 Qt的安装  5
1.2.1 本书使用的Qt版本  5
1.2.2 安装Qt  5
1.2.3 安装后的Qt  8
1.3 编写一个Hello World程序  9
1.3.1 Qt Creator简介  9
1.3.2 新建一个GUI项目  10
1.3.3 项目的文件组成和管理  12
1.3.4 项目的构建、调试与运行  13
第 2章 GUI程序设计基础  15
2.1 GUI程序结构与运行机制  15
2.1.1 GUI项目文件组成  15
2.1.2 项目配置文件  15
2.1.3 UI文件  17
2.1.4 主程序文件  18
2.1.5 窗口相关的文件  19
2.2 可视化UI设计  23
2.2.1 窗口界面可视化设计  24
2.2.2 界面组件布局管理  25
2.2.3 信号与槽简介  28
2.2.4 信号与槽的使用  29
2.2.5 为应用程序设置图标  31
2.2.6 Qt项目构建过程基本原理  32
2.3 代码化UI设计  33
2.3.1 示例功能概述  33
2.3.2 示例功能实现  33
2.4 使用CMake构建系统  36
2.4.1 CMake项目配置  37
2.4.2 CMake项目构建  38
2.4.3 使用cmake-gui生成Visual Studio项目  40
2.5 Qt Creator使用技巧  41
2.5.1 文本编辑器使用技巧  42
2.5.2 项目管理  42
2.5.3 代码模型  42
第3章 Qt框架功能概述  44
3.1 Qt 6框架中的模块  44
3.1.1 Qt基础模块  44
3.1.2 Qt附加模块  45
3.2 Qt全局定义  45
3.2.1 数据类型定义  46
3.2.2 函数  46
3.2.3 宏定义  47
3.3 Qt的元对象系统  47
3.3.1 元对象系统概述  48
3.3.2 运行时类型信息  50
3.3.3 属性系统  51
3.3.4 信号与槽  53
3.3.5 对象树  57
3.3.6 元对象系统功能测试示例  58
3.4 容器类  63
3.4.1 顺序容器类  63
3.4.2 关联容器类  65
3.4.3 遍历容器的数据  66
3.5 其他常用的基础类  68
3.5.1 QVariant类  68
3.5.2 QFlags类  69
3.5.3 QRandomGenerator类  70
第4章 常用界面组件的使用  72
4.1 界面组件概述  72
4.1.1 常用的界面组件  72
4.1.2 QWidget类的主要属性和接口函数  76
4.2 布局管理  78
4.2.1 布局管理相关的类  79
4.2.2 布局可视化设计及其代码原理  80
4.3 QString字符串操作  83
4.3.1 QString简介  83
4.3.2 QChar的功能  84
4.3.3 QChar主要功能测试  86
4.3.4 QString字符串常用操作  88
4.3.5 QString字符串常用功能测试  93
4.3.6 QString字符串与数值的转换  94
4.3.7 QString字符串与数值转换示例  98
4.4 QSpinBox和QDoubleSpinBox  100
4.4.1 QSpinBox类和QDoubleSpinBox类  100
4.4.2 示例程序  101
4.5 常用的按钮组件  102
4.5.1 各按钮类的接口详解  103
4.5.2 示例程序功能实现  104
4.6 QSlider和QProgressBar  106
4.6.1 各组件类的主要属性和接口函数  106
4.6.2 示例程序功能实现  108
4.7 日期时间数据  109
4.7.1 表示日期时间数据的类  109
4.7.2 日期时间数据的界面组件  113
4.7.3 示例程序功能实现  115
4.8 QTimer和QElapsedTimer  116
4.8.1 QTimer类  116
4.8.2 QElapsedTimer类  117
4.8.3 示例程序功能实现  118
4.9 QComboBox  121
4.9.1 QComboBox类  121
4.9.2 示例程序功能实现  122
4.10 QMainWindow和QAction  125
4.10.1 窗口界面可视化设计  125
4.10.2 QAction类  128
4.10.3 QToolBar类  130
4.10.4 QStatusBar类  130
4.10.5 混合式UI设计  131
4.10.6 QPlainTextEdit的使用  133
4.11 QToolButton和QListWidget  135
4.11.1 窗口界面可视化设计  135
4.11.2 QToolButton与界面补充创建  137
4.11.3 QListWidget的操作  140
4.11.4 创建右键快捷菜单  145
4.12 QTreeWidget  146
4.12.1 窗口界面可视化设计  146
4.12.2 QTreeWidget类  148
4.12.3 QTreeWidgetItem类  151
4.12.4 示例中QTreeWidget的操作  153
4.12.5 用QLabel和QPixmap显示图片  159
4.12.6 示例中QDockWidget的操作  160
4.13 QTableWidget  161
4.13.1 窗口界面可视化设计和初始化  161
4.13.2 QTableWidget类  163
4.13.3 QTableWidgetItem类  165
4.13.4 示例中QTableWidget的操作  166
第5章 模型/视图结构  171
5.1 模型/视图结构概述  171
5.1.1 模型/视图结构基本原理  171
5.1.2 模型  172
5.1.3 视图  172
5.1.4 代理  173
5.1.5 模型/视图结构的一些概念  173
5.1.6 QAbstractItemModel类  175
5.1.7 QAbstractItemView类  177
5.2 QStringListModel和QListView  178
5.2.1 QStringListModel类  179
5.2.2 示例程序功能实现  179
5.3 QStandardItemModel和QTableView  182
5.3.1 QTableView类  183
5.3.2 QStandardItemModel类  183
5.3.3 QStandardItem类  185
5.3.4 QItemSelectionModel类  187
5.3.5 示例程序功能实现  188
5.4 自定义代理  194
5.4.1 自定义代理的功能  195
5.4.2 QStyledItemDelegate类  195
5.4.3 设计自定义代理类  196
5.4.4 使用自定义代理类  199
5.5 QFileSystemModel和QTreeView  199
5.5.1 QFileSystemModel类  200
5.5.2 QTreeView类  202
5.5.3 示例程序功能实现  202
第6章 事件处理  205
6.1 Qt的事件系统  205
6.1.1 事件的产生和派发  205
6.1.2 事件类和事件类型  207
6.1.3 事件的处理  209
6.1.4 典型事件处理示例  210
6.2 事件与信号  213
6.2.1 函数event()的作用  213
6.2.2 事件与信号编程示例  214
6.3 事件过滤器  216
6.3.1 事件过滤器工作原理  217
6.3.2 事件过滤器编程示例  217
6.4 拖放事件与拖放操作  218
6.4.1 拖放操作相关事件  219
6.4.2 外部文件拖放操作示例  219
6.5 具有拖放操作功能的组件  222
6.5.1 示例窗口类定义和初始化  223
6.5.2 拖放操作属性的显示  224
6.5.3 拖放操作属性的设置  226
6.5.4 通过事件过滤器实现项的删除  227
第7章 对话框和多窗口程序设计  228
7.1 标准对话框  228
7.1.1 QFileDialog对话框  229
7.1.2 QColorDialog对话框  231
7.1.3 QFontDialog对话框  232
7.1.4 QProgressDialog对话框  232
7.1.5 QInputDialog标准输入对话框  233
7.1.6 QMessageBox消息对话框  236
7.2 设计和使用自定义对话框  237
7.2.1 QDialog类  238
7.2.2 示例功能概述  239
7.2.3 主窗口类定义和初始化  240
7.2.4 TDialogSize对话框的设计和使用  242
7.2.5 TDialogHeaders对话框的设计和使用  244
7.2.6 TDialogLocate对话框的设计和使用  245
7.3 多窗口应用程序设计  249
7.3.1 窗口类重要特性的设置  249
7.3.2 多窗口应用程序设计示例  251
7.4 MDI应用程序设计  258
7.4.1 QMdiArea类  259
7.4.2 QMdiSubWindow类  261
7.4.3 MDI应用程序设计示例  261
7.5 Splash与登录窗口  266
7.5.1 Splash登录对话框的界面设计和类定义  267
7.5.2 TDialogLogin类的功能实现  268
7.5.3 TDialogLogin对话框的使用  271
第8章 文件系统操作和文件读写  272
8.1 文件操作相关类概述  272
8.1.1 输入输出设备类  272
8.1.2 文件读写操作类  273
8.1.3 特定格式文件的读写  274
8.2 目录和文件操作  274
8.2.1 示例设计概述  275
8.2.2 QCoreApplication类  277
8.2.3 QFile类  277
8.2.4 QFileInfo类  279
8.2.5 QDir类  280
8.2.6 QTemporaryDir类  283
8.2.7 QTemporaryFile类  284
8.2.8 QFileSystemWatcher类  285
8.3 读写文本文件  287
8.3.1 用QFile读写文本文件  287
8.3.2 用QSaveFile保存文件  291
8.3.3 结合使用QFile和QTextStream读写文本文件  292
8.4 读写二进制文件  295
8.4.1 基础知识和工具软件  295
8.4.2 QDataStream类  297
8.4.3 使用预定义编码方式读写文件  299
8.4.4 使用原始二进制数据方式读写文件  308
第9章 数据库  316
9.1 Qt数据库编程概述  316
9.1.1 Qt SQL模块  316
9.1.2 SQLite数据库简介  318
9.1.3 本章示例数据库  318
9.2 QSqlTableModel的使用  319
9.2.1 主要的类和基本工作原理  320
9.2.2 示例窗口界面设计和类定义  323
9.2.3 打开数据库  324
9.2.4 其他功能的实现  332
9.3 QSqlQueryModel的使用  336
9.3.1 QSqlQueryModel类  336
9.3.2 使用QSqlQueryModel实现数据查询  337
9.4 QSqlQuery的使用  341
9.4.1 QSqlQuery类  342
9.4.2 QSqlQuery使用示例  344
9.5 QSqlRelationalTableModel的使用  352
9.5.1 数据表之间的关系  352
9.5.2 QSqlRelationalTableModel类的作用  353
9.5.3 QSqlRelationalTableModel类的主要接口函数  354
9.5.4 示例程序设计  355
第 10章 绘图  358
10.1 QPainter绘图  358
10.1.1 QPainter绘图系统  358
10.1.2 创建示例  360
10.1.3 QPen的主要功能  361
10.1.4 QBrush的主要功能  362
10.1.5 渐变填充  363
10.1.6 QPainter绘制基本图形  367
10.2 坐标系统和坐标变换  370
10.2.1 坐标变换  370
10.2.2 坐标变换绘图实例  371
10.2.3 视口和窗口  373
10.2.4 绘图叠加的效果  375
10.3 图形/视图架构  376
10.3.1 场景、视图与图形项  377
10.3.2 图形/视图架构的坐标系  378
10.3.3 图形/视图架构相关的类  379
10.3.4 图形/视图架构示例程序  381
10.4 图像处理  386
10.4.1 图像表示和图像处理概述  387
10.4.2 QImage类  389
10.4.3 图像处理示例程序  393
10.4.4 打印功能的实现  401
第 11章 自定义插件和库  406
11.1 设计和使用自定义界面组件  406
11.1.1 设计自定义界面组件类TBattery  406
11.1.2 使用自定义界面组件  409
11.2 设计和使用Qt Designer Widget插件  410
11.2.1 创建Qt Designer Widget插件项目  411
11.2.2 插件项目中各文件的功能实现  412
11.2.3 插件的编译与安装  415
11.2.4 使用自定义Widget插件  416
11.3 创建和使用静态库  418
11.3.1 创建静态库  418
11.3.2 使用静态库  420
11.4 创建和使用共享库  421
11.4.1 创建共享库  421
11.4.2 使用共享库  423
第 12章 Qt Charts  425
12.1 Qt Charts模块概述  425
12.1.1 一个简单的QChart绘图程序  425
12.1.2 图表的主要组成部分  427
12.2 通过QChart绘制折线图  429
12.2.1 主窗口类定义和初始化  429
12.2.2 QPen属性设置对话框设计  432
12.2.3 图表各组成部件的属性设置  434
12.3 图表交互操作  444
12.3.1 图表交互操作概述  444
12.3.2 自定义图表视图类TChartView  446
12.3.3 主窗口设计和初始化  449
12.3.4 交互操作功能的实现  451
12.4 饼图和各种柱状图  455
12.4.1 主窗口设计和数据准备  455
12.4.2 柱状图  459
12.4.3 堆叠柱状图  464
12.4.4 百分比柱状图  465
12.4.5 饼图  467
第 13章 Qt Data Visualization  470
13.1 Data Visualization模块概述  470
13.2 三维柱状图  471
13.2.1 示例主窗口设计  472
13.2.2 初始化创建三维柱状图  473
13.2.3 其他功能的实现  477
13.3 三维散点图  483
13.3.1 绘制三维散点图  483
13.3.2 散点数据管理  486
13.4 三维曲面图  487
13.4.1 一般的三维曲面图  488
13.4.2 三维地形图  493
第 14章 多线程  495
14.1 使用QThread创建多线程程序  495
14.1.1 QThread类简介  495
14.1.2 掷骰子的多线程应用程序  496
14.2 线程同步  500
14.2.1 线程同步的概念  500
14.2.2 基于互斥量的线程同步  501
14.2.3 基于读写锁的线程同步  504
14.2.4 基于条件等待的线程同步  506
14.2.5 基于信号量的线程同步  510
第 15章 网络  515
15.1 主机信息查询  515
15.1.1 QHostInfo类和QNetworkInterface类  515
15.1.2 QHostInfo类的使用  516
15.1.3 QNetworkInterface类的使用  518
15.2 TCP通信  519
15.2.1 TCP通信相关的类  520
15.2.2 TCP服务器端程序设计  522
15.2.3 TCP客户端程序设计  526
15.3 UDP通信  528
15.3.1 QUdpSocket类  528
15.3.2 UDP单播和广播  529
15.3.3 UDP组播  533
15.4 基于HTTP的网络应用程序  536
第 16章 多媒体  540
16.1 多媒体模块功能概述  540
16.2 播放音频  541
16.2.1 QMediaPlayer功能概述  541
16.2.2 基于QMediaPlayer的音乐播放器  543
16.2.3 使用QSoundEffect播放音效文件  549
16.3 录制音频  549
16.3.1 QMediaRecorder类功能概述  549
16.3.2 示例功能实现  550
16.4 采集和播放原始音频数据  554
16.4.1 QAudioSource类和QAudioSink类功能概述  554
16.4.2 示例程序功能概述  556
16.4.3 采集原始音频数据  557
16.4.4 播放原始音频数据  563
16.5 播放视频文件  565
16.5.1 在QVideoWidget上播放视频文件  565
16.5.2 在QGraphicsVideoItem上播放视频文件  569
16.6 摄像头的使用  570
16.6.1 摄像头控制概述  570
16.6.2 示例主窗口类定义和初始化  573
16.6.3 拍照  578
16.6.4 录像  579
第 17章 串口编程  581
17.1 Qt Serial Port模块概述  581
17.1.1 QSerialPortInfo类  581
17.1.2 QSerialPort类  581
17.2 串口编程示例:ESP8266模块通信程序  583
17.2.1 自定义标签类TMyLabel的设计和使用  585
17.2.2 主窗口类定义和初始化  585
17.2.3 通过串口读写数据  587
第 18章 其他工具软件和技术  591
18.1 多语言界面  591
18.1.1 多语言界面程序设计概述  591
18.1.2 多语言界面程序设计示例  593
18.2 Qt样式表  597
18.2.1 QSS的作用  597
18.2.2 QSS的句法  598
18.2.3 样式表的使用  603
18.3 Qt应用程序的发布和安装  605
18.3.1 Windows平台上的Qt应用程序发布  605
18.3.2 制作安装文件  607
附录 缩略词  612
猜您喜欢

读书导航