Qt 5.9 C++开发指南出版时间:2018内容简介本书以Qt 5.9 LTS版本为发平台,详细介绍了Qt C 发应用程序的技术,包括Qt应用程序的基本架构、信号与槽工作机制、图形显示的Graphics/View架构、数据编辑和显示的Model/View架构、对话框和多窗口的设计与调用方法等,介绍了常用界面组件、文件读写、绘图、图表、数据可视化、数据库、多线程、网络和多媒体等模块的使用。每个编程主题都精心设计了完整的实例程序。 通过阅读本书,可了解Qt C 发应用程序所需的基本技术。本书适合具有C 语言编程基础,希望应用Qt C 发跨平台应用程序的读者阅读。【推荐语】本书力求比较全面地介绍Qt C 发应用程序的技术,有以下几个特。 1.以Qt 5.9 LTS为发用版本,是目前新版的Qt,未来三年内有持续的支持(上一个LTS版本是Qt 5.6)。 2.介绍了Qt Charts, Data Visualization模块的使用,这是Qt 5.7以后才出现在社区版Qt中的模块,其他书籍没有介绍过的。 3.专注讲解Qt C 编程,内容全面而深。每个编程主题都精心设计了完整的实例程序,通过实例程序讲解主要类的使用。实例注重实际编程需求,很多实例代码可以直用于应用程序发。 4.本书内容安排上循序渐,编程主题与实例的讲解也完全站在学习者的角度,既讲解原理,也讲解代码实现,让读者跟随着书的内容就能掌握技术要。【作者】王维波,博士,主要从事地球物理探测仪器设计、数据处理方法研究和软件发等工作,精通软硬件设计与发。在实际研究和发工作中发现Qt之利、Qt之美,与读者分享Qt发经验。 栗宝鹃,博士,主要从事地球物理数据处理和成像的研究,在研究工作中将Qt用于专业软件的发,精通Qt学习之道、应用之道。 侯春望,硕士,主要从事单片机系统和应用软件的教学和研究工作,精通Qt C 编程,曾发多个专业应用软件。目录版权内容提要前言第1章 认识Qt1.1 Qt简介1.2 Qt的获取与安装1.2.1 Qt的许可类型1.2.2 Qt的版本1.2.3 Qt的下载与安装1.3 Qt Creator初步使用1.3.1 Qt Creator的界面组成1.3.2 Qt Creator的设置1.4 编写一个Hello World程序1.4.1 新建一个项目1.4.2 项目的文件组成和管理1.4.3 项目的编译、调试与运行1.5 在Visual Studio里使用Qt第2章 GUI应用程序设计基础2.1 UI文件设计与运行机制2.1.1 项目文件组成2.1.2 项目管理文件2.1.3 界面文件2.1.4 主函数文件2.1.5 窗体相关的文件2.2 可视化UI设计2.2.1 实例程序功能2.2.2 界面组件布局2.2.3 信号与槽2.2.4 可视化生成槽函数原型和框架2.3 代码化UI设计2.3.1 实例功能2.3.2 界面创建2.3.3 信号与槽的关联2.4 混合方式UI设计2.4.1 设计目的2.4.2 创建项目并添加资源文件2.4.3 设计Action2.4.4 设计菜单和工具栏2.4.5 代码创建其他界面组件2.4.6 Action的功能实现2.4.7 手工创建的组件的信号与槽2.4.8 为应用程序设置图标2.5 Qt Creator使用技巧第3章 Qt类库概述3.1 Qt核心特点3.1.1 概述3.1.2 元对象系统3.1.3 属性系统3.1.4 信号与槽3.1.5 元对象特性测试实例3.2 Qt全局定义3.2.1 数据类型定义3.2.2 函数3.2.3 宏定义3.3 容器类3.3.1 容器类概述3.3.2 顺序容器类3.3.3 关联容器类3.4 容器类的迭代3.4.1 Java类型迭代器3.4.2 STL类型迭代器3.4.3 foreach关键字3.5 Qt类库的模块3.5.1 Qt基本模块3.5.2 Qt附加模块3.5.3 增值模块3.5.4 技术预览模块3.5.5 Qt工具第4章 常用界面设计组件4.1 字符串与输入输出4.1.1字符串与数值之间的转换4.1.2 QString的常用功能4.2 SpinBox的使用4.3 其他数值输入和显示组件4.3.1 实例功能4.3.2 各组件的主要功能和属性4.3.3 实例功能的代码实现4.4 时间日期与定时器4.4.1 时间日期相关的类4.4.2 日期时间数据与字符串之间的转换4.4.3 QCalendarWidget日历组件4.4.4 定时器的使用4.5 QComboBox和QPlainTextEdit4.5.1 实例功能概述4.5.2 QComboBox的使用4.5.3 QPlainTextEdit的使用4.6 QListWidget和QToolButton4.6.1 实例功能简介4.6.2 界面设计4.6.3 QListWidget的操作4.6.4 QToolButton与下拉式菜单4.6.5 创建右键快捷菜单4.7 QTreeWidget和QDockWidget4.7.1 实例功能概述4.7.2 界面设计4.7.3 QTreeWidget操作4.7.4 QLabel和QPixmap显示图片4.7.5 QDockWidget的操作4.8 QTableWidget的使用4.8.1 QTableWidget概述4.8.2 界面设计与初始化4.8.3 QTableWidget操作第5章 Model/View结构5.1 Model/View结构5.1.1 Model/View基本原理5.1.2 数据模型5.1.3 视图组件5.1.4 代理5.1.5 Model/View结构的一些概念5.2 QFileSystemModel5.2.1 QFileSystemModel类的基本功能5.2.2 QFileSystemModel的使用5.3 QStringListModel5.3.1 QStringListModel功能概述5.3.2 QStringListModel的使用5.4 QStandardItemModel5.4.1 功能概述5.4.2 界面设计与主窗口类定义5.4.3 QStandardItemModel的使用5.5 自定义代理5.5.1 自定义代理的功能5.5.2 自定义代理类的基本设计要求5.5.3 基于QSpinBox的自定义代理类5.5.4 自定义代理类的使用第6章 对话框与多窗体设计6.1 标准对话框6.1.1 概述6.1.2 QFileDialog对话框6.1.3 QColorDialog对话框6.1.4 QFontDialog对话框6.1.5 QInputDialog标准输入对话框6.1.6 QMessageBox消息对话框6.2 自定义对话框及其调用6.2.1 对话框的不同调用方式6.2.2 对话框QWDialogSize的创建和使用6.2.3 对话框QWDialogHeaders的创建和使用6.2.4 对话框QWDialogLocate的创建与使用6.2.5 利用信号与槽实现交互操作6.3 多窗体应用程序设计6.3.1 主要的窗体类及其用途6.3.2 窗体类重要特性的设置6.3.3 多窗口应用程序的设计6.4 MDI应用程序设计6.4.1 MDI简介6.4.2 文档窗口类QFormDoc的设计6.4.3 MDI主窗口设计与子窗口的使用6.5 Splash与登录窗口6.5.1 实例功能概述6.5.2 对话框界面设计和类定义6.5.3 QDlgLogin类功能实现6.5.4 Splash登录窗口的使用第7章 文件系统和文件读写7.1 文本文件读写7.1.1 实例功能概述7.1.2 QFile读写文本文件7.1.3 QFile和QTextStream结合读写文本文件7.1.4 解决中文乱码的问题7.2 二进制文件读写7.2.1 实例功能概述7.2.2 Qt预定义编码文件的读写7.2.3 标准编码文件的读写7.3 文件目录操作7.3.1 文件目录操作相关的类7.3.2 实例概述7.3.3 QCoreApplication类7.3.4 QFile类7.3.5 QFileInfo类7.3.6 QDir类7.3.7 QTemporaryDir和QTemporaryFile7.3.8 QFileSystemWatcher类第8章 绘图8.1 QPainter基本绘图8.1.1 QPainter绘图系统8.1.2 QPen的主要功能8.1.3 QBrush的主要功能8.1.4 渐变填充8.1.5 QPainter绘制基本图形元件8.2 坐标系统和坐标变换8.2.1 坐标变换函数8.2.2 坐标变换绘图实例8.2.3 视口和窗口8.2.4 绘图叠加的效果8.3 Graphics View绘图架构8.3.1 场景、视图与图形项8.3.2 Graphics View的坐标系统8.3.3 Graphics View相关的类8.3.4 Graphics View程序基本结构和功能实现8.3.5 Graphics View绘图程序实例第9章 Qt Charts9.1 Qt Charts概述9.1.1 Qt Charts模块9.1.2 一个简单的QChart绘图程序9.1.3 图表的主要组成部分9.2 QChart绘制折线图9.2.1 实例功能9.2.2 主窗口类定义和初始化9.2.3 画笔设置对话框QWDialogPen9.2.4 QChart的设置9.2.5 QLineSeries序列的设置9.2.6 QValueAxis坐标轴的设置9.3 各种常见图表的绘制9.3.1 实例功能概述9.3.2 数据准备9.3.3 柱状图9.3.4 饼图9.3.5 堆叠柱状图9.3.6 百分比柱状图9.3.7 散点图和光滑曲线图9.4 图表的其他操作9.4.1 实例功能概述9.4.2 自定义QWChartView类9.4.3 主窗口类的设计9.4.4 实时显示光标处的数值9.4.5 QLegendMarker的使用9.4.6 图表的缩放第10章 Data Visualization10.1 Data Visualization模块概述10.2 三维柱状图10.2.1 实例功能10.2.2 主窗口设计10.2.3 三维柱状图的创建10.2.4 三维柱状图属性设置10.3 三维散点图10.3.1 绘制三维散点图10.3.2 三维坐标轴的方向10.3.3 散点形状与大小10.4 三维曲面绘图10.4.1 三维曲面图10.4.2 三维地形图第11章 数据库11.1 Qt SQL模块概述11.1.1 Qt SQL支持的数据库11.1.2 SQLite数据库11.1.3 Qt SQL模块的主要类11.2 QSqlTableModel的使用11.2.1 实例功能11.2.2 主窗口设计11.2.3 打开数据表11.2.4 添加、插入与删除记录11.2.5 保存与取消修改11.2.6 设置和清除照片11.2.7 数据记录的遍历11.2.8 记录排序11.2.9 记录过滤11.3 QSqlQueryModel的使用11.3.1 QSqlQueryModel功能概述11.3.2 使用QSqlQueryModel实现数据查询11.4 QSqlQuery的使用11.4.1 QSqlQuery基本用法11.4.2 QSqlQueryModel和QSqlQuery联合使用11.5 QSqlRelationalTableModel的使用11.5.1 关系型数据表和实例功能11.5.2 关系型数据模型功能实现第12章 自定义插件和库12.1 自定义Widget组件12.1.1 自定义Widget子类QmyBattery12.1.2 自定义Widget组件的使用12.2 自定义Qt Designer插件12.2.1 创建Qt Designer Widget插件项目12.2.2 插件项目各文件的功能实现12.2.3 插件的编译与安装12.2.4 使用自定义插件12.2.5 使用MSVC编译器输出中文的问题12.3 创建和使用静态链接库12.3.1 创建静态链接库12.3.2 静态链接库的使用12.4 创建和使用共享库12.4.1 创建共享库12.4.2 使用共享库第13章 多线程13.1 QThread创建多线程程序13.1.1 QThread类功能简介13.1.2 掷骰子的线程QDiceThread13.1.3 掷骰子的多线程应用程序13.2 线程同步13.2.1 线程同步的概念13.2.2 基于互斥量的线程同步13.2.3 基于QReadWriteLock的线程同步13.2.4 基于QWaitCondition的线程同步13.2.5 基于信号量的线程同步第14章 网络编程14.1 主机信息查询14.1.1 QHostInfo和QNetworkInterface类14.1.2 QHostInfo的使用14.1.3 QNetworkInterface的使用14.2 TCP通信14.2.1 TCP通信概述14.2.2 TCP服务器端程序设计14.2.3 TCP客户端程序设计14.3 QUdpSocket实现UDP通信14.3.1 UDP通信概述14.3.2 UDP单播和广播14.3.3 UDP组播14.4 基于HTTP协议的网络应用程序14.4.1 实现高层网络操作的类14.4.2 基于HTTP协议的网络文件下载第15章 多媒体15.1 Qt多媒体模块功能概述15.2 音频播放15.2.1 使用QMediaPlayer播放音乐文件15.2.2 使用QSoundEffect和QSound播放音效文件15.3 音频输入15.3.1 使用QAudioRecorder录制音频15.3.2 使用QAudioInput获取音频输入15.4 视频播放15.4.1 在QVideoWidget上播放视频15.4.2 在QGraphicsVideoItem上播放视频15.5 摄像头的使用15.5.1 摄像头控制概述15.5.2 实例主窗口设计与初始化15.5.3 QCamera对象创建与控制15.5.4 QCameraImageCapture抓取静态图片15.5.5 QMediaRecorder视频录制第16章 应用程序设计辅助功能16.1 多语言界面16.1.1 多语言界面设计概述16.1.2 tr()函数的使用16.1.3 生成语言翻译文件16.1.4 使用Qt Linguist翻译ts文件16.1.5 调用翻译文件改变界面语言16.2 使用样式表自定义界面16.2.1 Qt样式表16.2.2 Qt样式表句法16.2.3 样式表的使用16.3 使用QStyle设置界面外观16.3.1 QStyle的作用16.3.2 Qt内置样式的使用16.4 Qt应用程序的发布16.4.1 应用程序发布方式16.4.2 Windows平台上的应用程序发布 上一篇: Python高性能(第2版) 下一篇: Spring Cloud微服务 全栈技术与案例解析