作者: 王维波 出版社: 人民邮电出版社 出版年: 2023-1 页数: 613 装帧: 平装 ISBN: 9787115602404 本书以Qt 6为开发平台,系统介绍如何用Qt C++开发应用程序。首先介绍Qt C++应用程序的基本结构、界面可视化设计和布局管理方法、元对象系统的功能及其应用等基本内容,然后深入讲解常用界面组件、模型/视图结构、事件处理、对话框和多窗口程序设计、文件读写等功能的编程方法,以及数据库、多线程、网络、多媒体、图表、数据可视化、串口通信等功能模块的使用。本书内容丰富,辅以大量精心设计的完整示例程序,涵盖进行GUI程序设计所需掌握的各种技术主题。 目录 · · · · · · 第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
下载次数 173次 资源类型 技术文档 上传时间 2023-08-29
已有3人来访过
现在还没有留言