Qt 6 C++开发指南

978-7-115-60240-4
作者: 王维波
译者:
编辑: 刘雅思
分类: 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

详情

本书以Qt 6为开发平台,系统介绍如何用Qt C++开发应用程序。首先介绍Qt C++应用程序的基本结构、界面可视化设计和布局管理方法、元对象系统的功能及其应用等基本内容,然后深入讲解常用界面组件、模型/视图结构、事件处理、对话框和多窗口程序设计、文件读写等功能的编程方法,以及数据库、多线程、网络、多媒体、图表、数据可视化、串口通信等功能模块的使用。本书内容丰富,辅以大量精心设计的完整示例程序,涵盖进行GUI程序设计所需掌握的各种技术主题。

图书摘要

相关图书

代码审计——C/C++实践
代码审计——C/C++实践
CMake构建实战:项目开发卷
CMake构建实战:项目开发卷
C++ Templates(第2版)中文版
C++ Templates(第2版)中文版
C/C++代码调试的艺术(第2版)
C/C++代码调试的艺术(第2版)
计算机图形学编程(使用OpenGL和C++)(第2版)
计算机图形学编程(使用OpenGL和C++)(第2版)
21天学通C++(第9版)
21天学通C++(第9版)

相关文章

相关课程