Qt 5.9 C++开发指南
内容介绍
这书务求较为全方位地详细介绍Qt C 开发设计手机应用程序的技术性,有下列好多个特性。
1.以Qt 5.9 LTS为开发设计用版本号,是现阶段新版本的Qt,将来3年内有不断的适用(上1个LTS版本号是Qt 5.6)。
2.详细介绍了Qt Charts, Data Visualization控制模块的应用,它是Qt 5.7之后才出現在小区版Qt中的控制模块,别的书藉沒有详细介绍过的。
3.潜心解读Qt C 程序编写,內容全方位而深层次。每一程序编写主题风格都精心策划了详细的案例程序流程,根据案例程序流程解读关键类的应用。案例重视具体程序编写要求,许多案例编码能够立即用以应用开发。
4.这书內容分配上由浅入深,程序编写主题风格与案例的解读也彻底立在学生的视角,既解读基本原理,也解读编码保持,让用户跟随之书的內容就能把握技术性关键点。
这书以Qt 5.9 LTS版本号为平台,详解了Qt C 开发设计手机应用程序的技术性,包含Qt手机应用程序的基础构架、数据信号与槽工作方案、图型显示信息的Graphics/View构架、统计数据编写和显示信息的Model/View构架、提示框和多窗口的设计构思与启用方式 等,详细介绍了常见页面部件、文档读写能力、制图、数据图表、大数据可视化、数据库查询、多核、互联网和多媒体系统等控制模块的应用。每一程序编写主题风格都精心策划了详细的案例程序流程。 根据阅读文章这书,可掌握Qt C 开发设计手机应用程序需要的基础技术性。这书合适具备C 编程语言基本,期待运用Qt C 开发设计平台手机应用程序的用户阅读文章。
目录
- 第 1章 认识Qt 1
- 1.1 Qt简介 1
- 1.2 Qt的获取与安装 1
- 1.2.1 Qt的许可类型 1
- 1.2.2 Qt的版本 2
- 1.2.3 Qt的下载与安装 2
- 1.3 Qt Creator初步使用 5
- 1.3.1 Qt Creator的界面组成 5
- 1.3.2 Qt Creator的设置 6
- 1.4 编写一个Hello World程序 7
- 1.4.1 新建一个项目 7
- 1.4.2 项目的文件组成和管理 10
- 1.4.3 项目的编译、调试与运行 11
- 1.5 在Visual Studio里使用Qt 13
- 第 2章 GUI应用程序设计基础 16
- 2.1 UI文件设计与运行机制 16
- 2.1.1 项目文件组成 16
- 2.1.2 项目管理文件 16
- 2.1.3 界面文件 17
- 2.1.4 主函数文件 19
- 2.1.5 窗体相关的文件 20
- 2.2 可视化UI设计 25
- 2.2.1 实例程序功能 26
- 2.2.2 界面组件布局 26
- 2.2.3 信号与槽 29
- 2.2.4 可视化生成槽函数原型和
- 框架 30
- 2.3 代码化UI设计 34
- 2.3.1 实例功能 34
- 2.3.2 界面创建 34
- 2.3.3 信号与槽的关联 37
- 2.4 混合方式UI设计 37
- 2.4.1 设计目的 37
- 2.4.2 创建项目并添加资源文件 38
- 2.4.3 设计Action 39
- 2.4.4 设计菜单和工具栏 41
- 2.4.5 代码创建其他界面组件 44
- 2.4.6 Action的功能实现 45
- 2.4.7 手工创建的组件的
- 信号与槽 47
- 2.4.8 为应用程序设置图标 48
- 2.5 Qt Creator使用技巧 48
- 第3章 Qt类库概述 50
- 3.1 Qt核心特点 50
- 3.1.1 概述 50
- 3.1.2 元对象系统 50
- 3.1.3 属性系统 52
- 3.1.4 信号与槽 53
- 3.1.5 元对象特性测试实例 55
- 3.2 Qt全局定义 59
- 3.2.1 数据类型定义 60
- 3.2.2 函数 60
- 3.2.3 宏定义 61
- 3.3 容器类 62
- 3.3.1 容器类概述 62
- 3.3.2 顺序容器类 63
- 3.3.3 关联容器类 64
- 3.4 容器类的迭代 66
- 3.4.1 Java类型迭代器 66
- 3.4.2 STL类型迭代器 68
- 3.4.3 foreach关键字 69
- 3.5 Qt类库的模块 70
- 3.5.1 Qt基本模块 71
- 3.5.2 Qt附加模块 71
- 3.5.3 增值模块 72
- 3.5.4 技术预览模块 72
- 3.5.5 Qt工具 73
- 第4章 常用界面设计组件 74
- 4.1 字符串与输入输出 74
- 4.1.1 字符串与数值之间的转换 74
- 4.1.2 QString的常用功能 76
- 4.2 SpinBox的使用 78
- 4.3 其他数值输入和显示组件 80
- 4.3.1 实例功能 80
- 4.3.2 各组件的主要功能和属性 80
- 4.3.3 实例功能的代码实现 82
- 4.4 时间日期与定时器 84
- 4.4.1 时间日期相关的类 84
- 4.4.2 日期时间数据与字符串之间的
- 转换 84
- 4.4.3 QCalendarWidget日历组件 87
- 4.4.4 定时器的使用 87
- 4.5 QComboBox和QPlainTextEdit 89
- 4.5.1 实例功能概述 89
- 4.5.2 QComboBox的使用 89
- 4.5.3 QPlainTextEdit的使用 91
- 4.6 QListWidget和QToolButton 93
- 4.6.1 实例功能简介 93
- 4.6.2 界面设计 94
- 4.6.3 QListWidget的操作 97
- 4.6.4 QToolButton与下拉式
- 菜单 99
- 4.6.5 创建右键快捷菜单 101
- 4.7 QTreeWidget和QDockWidget 102
- 4.7.1 实例功能概述 102
- 4.7.2 界面设计 103
- 4.7.3 QTreeWidget操作 105
- 4.7.4 QLabel和Qpixmap
- 显示图片 110
- 4.7.5 QDockWidget的操作 111
- 4.8 QTableWidget的使用 112
- 4.8.1 QTableWidget概述 112
- 4.8.2 界面设计与初始化 113
- 4.8.3 QTableWidget操作 114
- 第5章 Model/View结构 120
- 5.1 Model/View结构 120
- 5.1.1 Model/View基本原理 120
- 5.1.2 数据模型 121
- 5.1.3 视图组件 122
- 5.1.4 代理 122
- 5.1.5 Model/View结构的一些
- 概念 123
- 5.2 QFileSystemModel 125
- 5.2.1 QFileSystemModel类的
- 基本功能 125
- 5.2.2 QFileSystemModel的
- 使用 125
- 5.3 QStringListModel 127
- 5.3.1 QstringListModel
- 功能概述 127
- 5.3.2 QStringListModel的使用 127
- 5.4 QStandardItemModel 130
- 5.4.1 功能概述 130
- 5.4.2 界面设计与主窗口类
- 定义 131
- 5.4.3 QStandardItemModel的
- 使用 132
- 5.5 自定义代理 139
- 5.5.1 自定义代理的功能 139
- 5.5.2 自定义代理类的基本
- 设计要求 139
- 5.5.3 基于QSpinBox的自定义
- 代理类 139
- 5.5.4 自定义代理类的使用 141
- 第6章 对话框与多窗体设计 143
- 6.1 标准对话框 143
- 6.1.1 概述 143
- 6.1.2 QFileDialog对话框 144
- 6.1.3 QColorDialog对话框 146
- 6.1.4 QFontDialog对话框 146
- 6.1.5 QInputDialog标准输入
- 对话框 147
- 6.1.6 QMessageBox消息对话框 149
- 6.2 自定义对话框及其调用 150
- 6.2.1 对话框的不同调用方式 150
- 6.2.2 对话框QWDialogSize的
- 创建和使用 152
- 6.2.3 对话框QWDialogHeaders的
- 创建和使用 154
- 6.2.4 对话框QWDialogLocate的
- 创建与使用 156
- 6.2.5 利用信号与槽实现交互
- 操作 160
- 6.3 多窗体应用程序设计 162
- 6.3.1 主要的窗体类及其用途 162
- 6.3.2 窗体类重要特性的设置 163
- 6.3.3 多窗口应用程序的设计 165
- 6.4 MDI应用程序设计 170
- 6.4.1 MDI简介 170
- 6.4.2 文档窗口类QFormDoc的
- 设计 171
- 6.4.3 MDI主窗口设计与子窗口的
- 使用 173
- 6.5 Splash与登录窗口 176
- 6.5.1 实例功能概述 176
- 6.5.2 对话框界面设计和类
- 定义 177
- 6.5.3 QDlgLogin类功能实现 178
- 6.5.4 Splash登录窗口的使用 181
- 第7章 文件系统和文件读写 182
- 7.1 文本文件读写 182
- 7.1.1 实例功能概述 182
- 7.1.2 QFile读写文本文件 182
- 7.1.3 QFile和QTextStream结合
- 读写文本文件 184
- 7.1.4 解决中文乱码的问题 185
- 7.2 二进制文件读写 186
- 7.2.1 实例功能概述 186
- 7.2.2 Qt预定义编码文件的读写 187
- 7.2.3 标准编码文件的读写 192
- 7.3 文件目录操作 197
- 7.3.1 文件目录操作相关的类 197
- 7.3.2 实例概述 197
- 7.3.3 QCoreApplication类 199
- 7.3.4 QFile类 199
- 7.3.5 QFileInfo类 200
- 7.3.6 QDir类 201
- 7.3.7 QTemporaryDir和
- QTemporaryFile 203
- 7.3.8 QFileSystemWatcher类 203
- 第8章 绘图 206
- 8.1 QPainter基本绘图 206
- 8.1.1 QPainter绘图系统 206
- 8.1.2 QPen的主要功能 209
- 8.1.3 QBrush的主要功能 210
- 8.1.4 渐变填充 212
- 8.1.5 QPainter绘制基本图形
- 元件 214
- 8.2 坐标系统和坐标变换 217
- 8.2.1 坐标变换函数 217
- 8.2.2 坐标变换绘图实例 218
- 8.2.3 视口和窗口 221
- 8.2.4 绘图叠加的效果 223
- 8.3 Graphics View绘图架构 224
- 8.3.1 场景、视图与图形项 224
- 8.3.2 Graphics View的坐标
- 系统 226
- 8.3.3 Graphics View相关的类 227
- 8.3.4 Graphics View程序基本结构
- 和功能实现 229
- 8.3.5 Graphics View绘图程序
- 实例 235
- 第9章 Qt Charts 247
- 9.1 Qt Charts概述 247
- 9.1.1 Qt Charts模块 247
- 9.1.2 一个简单的QChart绘图
- 程序 248
- 9.1.3 图表的主要组成部分 249
- 9.2 QChart绘制折线图 253
- 9.2.1 实例功能 253
- 9.2.2 主窗口类定义和初始化 253
- 9.2.3 画笔设置对话框
- QWDialogPen 256
- 9.2.4 QChart的设置 257
- 9.2.5 QLineSeries序列的设置 259
- 9.2.6 QValueAxis坐标轴的
- 设置 261
- 9.3 各种常见图表的绘制 263
- 9.3.1 实例功能概述 263
- 9.3.2 数据准备 264
- 9.3.3 柱状图 267
- 9.3.4 饼图 270
- 9.3.5 堆叠柱状图 273
- 9.3.6 百分比柱状图 274
- 9.3.7 散点图和光滑曲线图 276
- 9.4 图表的其他操作 277
- 9.4.1 实例功能概述 277
- 9.4.2 自定义QWChartView类 278
- 9.4.3 主窗口类的设计 280
- 9.4.4 实时显示光标处的数值 281
- 9.4.5 QLegendMarker的使用 282
- 9.4.6 图表的缩放 283
- 第 10章 Data Visualization 284
- 10.1 Data Visualization模块概述 284
- 10.2 三维柱状图 285
- 10.2.1 实例功能 285
- 10.2.2 主窗口设计 286
- 10.2.3 三维柱状图的创建 287
- 10.2.4 三维柱状图属性设置 289
- 10.3 三维散点图 293
- 10.3.1 绘制三维散点图 293
- 10.3.2 三维坐标轴的方向 296
- 10.3.3 散点形状与大小 296
- 10.4 三维曲面绘图 296
- 10.4.1 三维曲面图 296
- 10.4.2 三维地形图 301
- 第 11章 数据库 305
- 11.1 Qt SQL模块概述 305
- 11.1.1 Qt SQL支持的数据库 305
- 11.1.2 SQLite数据库 306
- 11.1.3 Qt SQL模块的主要类 308
- 11.2 QSqlTableModel的使用 309
- 11.2.1 实例功能 309
- 11.2.2 主窗口设计 310
- 11.2.3 打开数据表 311
- 11.2.4 添加、插入与删除记录 319
- 11.2.5 保存与取消修改 319
- 11.2.6 设置和清除照片 320
- 11.2.7 数据记录的遍历 321
- 11.2.8 记录排序 322
- 11.2.9 记录过滤 322
- 11.3 QSqlQueryModel的使用 323
- 11.3.1 QSqlQueryModel功能
- 概述 323
- 11.3.2 使用QSqlQueryModel实现
- 数据查询 323
- 11.4 QSqlQuery的使用 327
- 11.4.1 QSqlQuery基本用法 327
- 11.4.2 QSqlQueryModel和
- QSqlQuery联合使用 328
- 11.5 QSqlRelationalTableModel的
- 使用 336
- 11.5.1 关系型数据表和实例
- 功能 336
- 11.5.2 关系型数据模型功能
- 实现 338
- 第 12章 自定义插件和库 340
- 12.1 自定义Widget组件 340
- 12.1.1 自定义Widget子类
- QmyBattery 340
- 12.1.2 自定义Widget组件的
- 使用 343
- 12.2 自定义Qt Designer插件 344
- 12.2.1 创建Qt Designer Widget插件项目 344
- 12.2.2 插件项目各文件的功能
- 实现 346
- 12.2.3 插件的编译与安装 349
- 12.2.4 使用自定义插件 350
- 12.2.5 使用MSVC编译器输出
- 中文的问题 352
- 12.3 创建和使用静态链接库 353
- 12.3.1 创建静态链接库 353
- 12.3.2 静态链接库的使用 354
- 12.4 创建和使用共享库 357
- 12.4.1 创建共享库 357
- 12.4.2 使用共享库 358
- 第 13章 多线程 362
- 13.1 QThread创建多线程程序 362
- 13.1.1 QThread类功能简介 362
- 13.1.2 掷骰子的线程
- QDiceThread 363
- 13.1.3 掷骰子的多线程应用
- 程序 365
- 13.2 线程同步 367
- 13.2.1 线程同步的概念 367
- 13.2.2 基于互斥量的线程同步 368
- 13.2.3 基于QReadWriteLock的
- 线程同步 371
- 13.2.4 基于QWaitCondition的
- 线程同步 373
- 13.2.5 基于信号量的线程同步 377
- 第 14章 网络编程 383
- 14.1 主机信息查询 383
- 14.1.1 QHostInfo和
- QNetworkInterface类 383
- 14.1.2 QHostInfo的使用 384
- 14.1.3 QNetworkInterface的
- 使用 386
- 14.2 TCP通信 388
- 14.2.1 TCP通信概述 388
- 14.2.2 TCP服务器端程序
- 设计 390
- 14.2.3 TCP客户端程序设计 395
- 14.3 QUdpSocket实现UDP通信 397
- 14.3.1 UDP通信概述 397
- 14.3.2 UDP单播和广播 398
- 14.3.3 UDP组播 402
- 14.4 基于HTTP协议的网络应用
- 程序 405
- 14.4.1 实现高层网络操作的类 405
- 14.4.2 基于HTTP协议的网络
- 文件下载 406
- 第 15章 多媒体 409
- 15.1 Qt多媒体模块功能概述 409
- 15.2 音频播放 410
- 15.2.1 使用QMediaPlayer播放
- 音乐文件 410
- 15.2.2 使用QSoundEffect和Qsound
- 播放音效文件 415
- 15.3 音频输入 415
- 15.3.1 使用QAudioRecorder
- 录制音频 415
- 15.3.2 使用QAudioInput获取
- 音频输入 421
- 15.4 视频播放 428
- 15.4.1 在QVideoWidget上播放
- 视频 428
- 15.4.2 在QGraphicsVideoItem上
- 播放视频 431
- 15.5 摄像头的使用 433
- 15.5.1 摄像头控制概述 433
- 15.5.2 实例主窗口设计与初始化 435
- 15.5.3 QCamera对象创建与控制 436
- 15.5.4 QCameraImageCapture抓取静态图片 438
- 15.5.5 QMediaRecorder视频录制 439
- 第 16章 应用程序设计辅助功能 441
- 16.1 多语言界面 441
- 16.1.1 多语言界面设计概述 441
- 16.1.2 tr()函数的使用 441
- 16.1.3 生成语言翻译文件 442
- 16.1.4 使用Qt Linguist翻译ts文件 443
- 16.1.5 调用翻译文件改变界面语言 444
- 16.2 使用样式表自定义界面 446
- 16.2.1 Qt样式表 446
- 16.2.2 Qt样式表句法 447
- 16.2.3 样式表的使用 453
- 16.3 使用QStyle设置界面外观 455
- 16.3.1 QStyle的作用 455
- 16.3.2 Qt内置样式的使用 456
- 16.4 Qt应用程序的发布 457
- 16.4.1 应用程序发布方式 457
- 16.4.2 Windows平台上的应用程序发布 458