万本电子书0元读

万本电子书0元读

顶部广告

Qt 5.12实战电子书

Qt 是一个跨平台C 图形用户界面应用程序发框架,既可以发GUI程序,也可以发非GUI程序,比如控制台工具和服务器等,在软件工业界有广泛的应用。本书详解Qt 5.12编程,内容包括Qt概述、发环境、编程基础、对话框程序设计、控件设计、数据库编程、调用Windows动态库、使用Linux静态库和共享库、文件编程、菜单栏/工具栏和状态栏、图形编程、多线程编程、多媒体编程、网络编程、应用程序发布。

售       价:¥

纸质售价:¥59.50购买纸书

577人正在读 | 0人评论 6.3

作       者:朱晨冰,李建英

出  版  社:清华大学出版社

出版时间:2020-11-01

字       数:33.1万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Qt是一个跨平台C 图形用户界面应用程序发框架,既可以发GUI程序,也可以发非GUI程序,比如控制台工具和服务器等,在软件工业界有广泛的应用。 本书分为15章,内容包括Qt概述、发环境、编程基础、对话框程序设计、控件设计、数据库编程、调用Windows动态库、使用Linux静态库和共享库、文件编程、菜单栏/工具栏和状态栏、图形编程、多线程编程、多媒体编程、网络编程、应用程序发布。 本书既适合Qt编程初学者、Qt跨平台应用发人员阅读,也适合作为高等院校和培训学校相关专业的教材。<br/>【推荐语】<br/>Qt 是一个跨平台C 图形用户界面应用程序发框架,既可以发GUI程序,也可以发非GUI程序,比如控制台工具和服务器等,在软件工业界有广泛的应用。本书详解Qt 5.12编程,内容包括Qt概述、发环境、编程基础、对话框程序设计、控件设计、数据库编程、调用Windows动态库、使用Linux静态库和共享库、文件编程、菜单栏/工具栏和状态栏、图形编程、多线程编程、多媒体编程、网络编程、应用程序发布。<br/>【作者】<br/>朱晨冰,计算机应用专业硕士,10多年C C 发经验。精通Linux、Windows系统发及数据库发技术。 李建英,计算机应用专业硕士,近10年项目管理经验,参与过多个软件产品的发,精通C C 编程语言。<br/>
目录展开

内容简介

前言

源码下载

技术支持邮箱

目 录

第1章 Qt概述

1.1 Qt简介

1.2 发展历程

1.3 Qt的优点

1.4 Qt和MFC的比较

(1)开发速度

(2)运行效率

(3)应用范围

(4)学习难度

(5)伪对象vs真对象

(6)消息循环

(7)创建界面

(8)帮助文档

(9)Unicode编码

(10)支持软件的多语种功能

(11)资源问题

(12)价格

(13)发布

1.5 Qt的主要应用领域

1.6 Qt的版本

(1)新的模块和平台

(2)Qt QML和Qt Quick

(3)Qt Core和Qt Network

(4)Qt GUI和Widgets

(5)其他更新

第2章 搭建Qt 5.12开发环境

2.1 搭建Windows下的Qt开发环境

(1)基于MSVC编译器

(2)基于GCC编译器

2.1.1 搭建基于MSVC编译器的开发环境

1. 安装VC2017

2. 下载和安装控制台调试器CDB

3. 下载和安装Qt 5.12.2

4. 配置Qt环境变量

5. 在VC2017中开发(VC+Qt)

6. 安装VC2017的Qt插件(离线方式)

7. 安装VC2017的Qt插件(在线方式)

8. 配置插件选项

9. 第一个VC开发的Qt 5.12.2程序

10. 在VC2017中使用单步调试功能

11. 卸载Qt 5.12.2

12. 在Qt Creator 4.8.2中开发(Qt Creator+MSVC+CDB)

13. 在Qt Creator中使用单步调试功能

2.1.2 搭建基于GCC编译器的开发环境

2.1.3 部署Qt 4.7.4开发环境

1. 下载IDE和开发包

2. 安装Qt Creator

3. 安装qt-win-opensource-4.7.4-mingw.exe

4. 为Qt Creator关联Qt

5. 第一个Qt 4.7控制台程序

2.2 搭建Linux下的Qt开发环境

2.2.1 准备虚拟机Linux

1. 在VMware下安装Linux

2. 启用root账户

3. 安装VMware Tools

4. 调整分辨率

5. 设置禁止锁屏

2.2.2 下载Qt 5.12.2

2.2.3 下载安装依赖包

2.2.4 安装Qt

2.2.5 配置环境变量

2.2.6 验证是否安装成功

2.2.7 启动Qt Creator

2.2.8 第一个Linux下的Qt程序

2.2.9 做个快照

2.3 Qt Creator的一些小技巧

2.3.1 添加删除行的快捷键

2.3.2 改变编辑器的颜色

2.3.3 设置默认的构建套件

第3章 Qt编程基础

3.1 Qt基本数据类型

3.2 字节数组类QByteArray

3.2.1 初始化

3.2.2 访问某个元素

3.2.3 截取子字符串

3.2.4 获取字节数组的大小

3.2.5 数据转换与处理

1. Hex转换(十六进制转换)

2. 数值转换与输出

3.2.6 字母大小写的转换

3.2.7 字符串数值转为各类数值

3.2.8 QByteArray与char*互转

3.2.9 QByteArray与std::string互转

3.2.10 与字符串QString互转

3.2.11 QByteArray与自定义结构体之间的转化

3.2.12 判断是否为空

3.2.13 向前搜索和向后搜索

3.2.14 插入

3.3 字符类QChar

3.3.1 QChar的编码

3.3.2 Qchar类的接口

1. QChar类的构造函数

2. QChar类的字符判断

3. QChar类的数据转换

4. QChar类的字符比较

5. QChar类与char类型的相互转化

3.4 字符串类QString

3.4.1 Qstring类的特点

3.4.2 Qstring类的常用操作

1. 初始化

(1)QString类存储的字符串中的字符默认采用的是Unicode编码

(2)来自char*的数据,默认被当作UTF-8编码格式

(3)用QChar数组构建的QString类对象会进行深度复制

2. 访问某个元素

3. 赋值运算

4. 获取长度

5. 字母大小写的转换

6. 移除字符

7. 添加字符串

8. 去掉空格

9. 查找子字符串

10. 判读字符串是否为空

11. 判断是否包含某个字符串

12. 判断是否以某个字符串开头或结尾

13. 截取子字符串

14. 格式化打印

15. 将字符串类型转换成其他基本数据类型

16. 字符串的比较

17. 清空

18. 截断字符串

19. char *和QString互转

20. std::string和QString互转

21. 数字和QString互转

3.5 列表类QList

1. 初始化

2. 访问元素

3. 插入操作

4. 替换操作

5. 移除操作

6. 移动操作

7. 交换操作

8. 在列表尾添加元素

9. 在表头添加元素

10. 移除第一个元素

11. 移除最后一个元素

12. 获得列表中第一个匹配元素值对应的索引位置

13. 判断列表中是否有相应的元素值

14. 获取指定值在列表中出现的次数

15. 获取列表中元素的数量

3.6 字符串列表类QStringList

1. QStringList类对象的初始化

2. 增加字符串

3. 遍历QStringList类对象中的元素

4. 在某位置插入字符串

5. 合并列表中的字符串为一个字符串

6. 拆分字符串

7. 索引位置

8. 替换

9. 过滤

3.7 Qt和字符集

3.7.1 计算机上的3种字符集

(1)单字节字符集(SBCS)

(2)多字节字符集(MBCS)

(3)Unicode字符集

3.7.2 VC-Qt开发环境对Unicode和多字节的支持

3.7.3 Qt Creator开发环境对Unicode和多字节的支持

3.7.4 在Qt Creator中使用中文字符的两种方式

(1)使用静态函数QString::fromLocal8Bit

(2)在文件开头使用预处理命令execution_character_set

3.8 认识Qt界面Widgets

3.9 Qt中与界面相关的类库

3.9.1 QObject类

3.9.2 QWidget类

3.9.3 和主窗口有关的类

(1)QMainWindow类

(2)QDockWidget类

(3)QMenu类

(4)QToolBar类

(5)QStatusBar类

(1)QAction类

(2)QActionGroup类

(3)QWidgetAction类

3.9.4 对话框类和控件类

(1)QDialog类

(2)各个控件类

3.9.5 Qt Widgets应用程序类型

3.10 获取系统当前时间

3.11 事件

3.11.1 基本概念

3.11.2 事件的描述

3.11.3 事件的类型

3.11.4 事件的处理

3.11.5 事件的传递

3.12 信号

3.12.1 基本概念

3.12.2 信号和槽的连接

3.12.3 信号和事件的区别

第4章 Qt对话框程序设计

4.1 对话框程序设计概述

4.2 对话框的扩展性

4.3 对话框的默认按钮

4.4 QDialog类

1. 公有成员

(1)构造函数QDialog

(2)析构函数~QDialog()

(3)DialogCode

(4)result()函数

(5)show()函数

(6)setOrientation()函数

(7)orientation()函数

(8)setExtension()函数

(9)extension()函数

(10)setSizeGripEnabled()函数

(11)isSizeGripEnabled()函数

2. 公有槽

3. 属性

4. 保护成员函数

5. 保护槽

(1)done()函数

(2)accept()函数

(3)reject()函数

(4)showExtension()函数

4.5 初始化对话框的地方

4.6 一个简单的对话框程序

4.7 设置对话框的属性

4.7.1 对话框的标题

4.7.2 Qt中的坐标系统

4.7.3 geometry属性

4.7.4 minimumSize属性和maximumSize属性

4.7.5 设置对话框的尺寸、图标和背景图片

4.8 在对话框上使用按钮控件

4.8.1 显示控件工具箱

4.8.2 拖动一个按钮到对话框

4.8.3 选中按钮控件

4.8.4 移动对话框上的按钮控件

4.8.5 对齐对话框上的按钮控件

4.8.6 调整按钮控件的大小

4.8.7 删除对话框上的按钮控件

4.8.8 为按钮控件添加事件处理函数

1. 用手工方式添加事件处理函数

2. 用可视化向导方式添加事件处理函数

4.9 模态对话框和非模态对话框

4.10 通用对话框

4.10.1 消息对话框

1. 静态函数法显示消息框

2. 用定义对象法来显示消息框

4.10.2 文件对话框

1. 用于打开文件对话框的函数getOpenFileName()

2. 用于打开多个文件对话框的函数getOpenFileNames()

3. 用于保存文件对话框的函数getSaveFileName()

4. 用定义对象法来显示文件对话框

4.10.3 字体对话框QFontDialog类

1. 用静态函数法来显示字体对话框

2. 用定义对象法来显示字体对话框

4.10.4 颜色对话框

1. 用静态函数法来显示颜色对话框

2. 用定义对象法来显示颜色对话框

4.11 移动对话框到指定位置

4.12 在对话框非标题栏区域实现拖动

第5章 Qt控件设计

5.1 控件概述

5.2 对话框程序设计概述

5.3 按钮类控件

5.3.1 概述

5.3.2 按钮类的父类QAbstractButton

5.3.3 按压按钮

5.3.4 工具按钮

5.3.5 单选按钮

1. 分组

2. 信号

3. QButtonGroup类

5.3.6 复选框

1. 以静态方式使用复选框

2. 以动态方式使用独占和非独占复选框

5.3.7 对话框组合按钮

QDialogButtonBox的基本使用

5.4 列表视图控件

5.4.1 抽象数据项模型QAbstractItemModel

5.4.2 字符串列表数据模型QStringListModel

5.4.3 文件系统数据模型QDirModel

5.5 树形视图控件

5.5.1 标准数据项QStandardItem

5.5.2 标准数据项模型QStandardItemModel

5.5.3 添加表头

5.5.4 隐藏表头

5.5.5 表项的操作

1. 展开所有节点

2. 添加节点

3. 响应对树节点的单击操作

4. 为QTreeView节点添加图标

5. 获取当前选中的表项

6. 兄弟节点的获取

7. 寻找可见顶层

5.6 组合框

5.6.1 添加内容项和设置图标

5.6.2 删除某个内容项

5.6.3 清空组合框内容

5.6.4 组合框列表项的访问

5.6.5 选择项发生变化时的信号

5.7 字体组合框

5.8 标签控件

5.9 分组框控件

5.10 正则表达式和QregExp类

5.10.1 正则表达式的规则

1. 普通字符

2. 简单的转义字符

3. 能够与多种字符匹配的表达式

4. 自定义能够匹配多种字符的表达式

5. 修饰匹配次数的特殊符号

6. 其他一些代表抽象意义的特殊符号

5.10.2 正则表达式中的一些高级规则

1. 匹配次数中的贪婪与非贪婪

2. 反向引用"\1" "\2"…

3. 预搜索,不匹配;反向预搜索,不匹配

(1)正向预搜索:"(?=xxxxx)","(?!xxxxx)"

(2)反向预搜索:"(?<=xxxxx)","(?<!xxxxx)"

5.10.3 其他通用规则

5.10.4 正则表达式属性

5.10.5 QregExp类

1. 构造函数

(1)默认构造函数:

(2)复制构造函数:

(3)模式构造函数:

2. QRegExp的统配模式

3. 常用成员函数

4. 常用的正则表达式搭配

5.11 行编辑框

5.11.1 常用成员函数

5.11.2 用于描述输入框如何显示其内容的枚举值

5.11.3 对齐方式

5.11.4 获取和设置选择的文本

5.11.5 常用信号

5.11.6 限制字符的输入

5.12 进度条控件

5.12.1 QProgressBar类的常用函数

5.12.2 进度方向

5.12.3 文本显示

5.12.4 繁忙指示

5.13 布局管理器

5.13.1 基本布局管理器QBoxLayout类

5.13.2 栅格布局管理器QGridLayout类

5.13.3 窗体布局管理器QFormLayout类

5.13.4 栈布局管理器QStackedLayout类

第6章 Qt数据库编程

6.1 数据库的基本概念

1. 数据库

2. 数据库管理系统

3. SQL

6.2 Qt SQL模块

1. 驱动层

2. SQL接口层

3. 用户接口层

6.3 访问数据库

6.3.1 访问Access数据库

1. 准备64位的Access

2. 新建数据库

3. 访问Access数据库

(1)定义QSqlDatabase对象

(2)通过函数addDatabase()添加数据库的驱动程序

(3)设置数据库名称

(4)打开数据库

(5)执行查询等操作

(6)定位记录,得到查询结果

(7)清除结果集,关闭数据库

6.3.2 访问SQLite数据库

1. 新建SQLite数据库

2. 新建表并添加记录

3. 查询表中的内容

4. 删除表中的内容

5. 更新表中的内容

第7章 Qt调用Windows下的动态链接库

7.1 动态链接库的定义

7.2 使用动态链接库的好处

(1)有利于代码和数据的共享

(2)有利于系统模块化开发

(3)有利于软件升级

(4)有利于保护软件技术

7.3 动态链接库的分类

7.4 Win32 DLL的开发和Qt调用

7.4.1 在DLL中导出全局函数并调用

1. 通过关键字_declspec(dllexport)导出

2. 使用模块定义文件来导出

7.4.2 在VC++中使用DLL的导出函数

1. 隐式链接

2. 显式链接

7.4.3 函数DllMain()

(1)DLL_PROCESS_ATTACH

(2)DLL_PROCESS_DETACH

(3)DLL_THREAD_ATTACH

(4)DLL_THREAD_DETACH

7.4.4 在Qt中调用DLL的导出函数

1. 使用Win32 API调用DLL导出函数

2. 使用QLibrary类调用DLL导出函数

3. 直接调用 DLL中的导出函数

4. 可视化法调用DLL中的导出函数

7.4.5 在Qt中调用DLL的导出变量

1. 在DLL中导出变量

2. 在Qt项目中调用DLL的导出变量

3. 使用Win32 API调用DLL导出变量

4. 使用类QLibrary调用DLL导出变量

7.4.6 在DLL中导出类

7.4.7 在Qt项目中调用DLL的导出类

7.4.8 Qt生成DLL

7.4.9 其他语言调用Qt生成的DLL

1. 函数的调用约定

(1)__cdecl调用约定

(2)__stdcall调用约定

(3)__fastcall调用约定

(4)thiscall调用约定

(5)naked call调用约定

2. 函数名修饰的约定

3. 在Dephi中使用Qt生成的DLL

(1)使用模块定义文件

(2)用C语言方式编译并且指定__cdecl调用约定

7.5 MFC下DLL的开发和Qt的调用

7.5.1 MFC DLL的生成

7.5.2 在Qt下调用MFC DLL

第8章 在Qt中使用Linux的静态库和动态库

8.1 Qt程序调用静态库和动态库

8.1.1 库的基本概念

8.1.2 库的分类

8.2 静态库

8.2.1 静态库的基本概念

8.2.2 静态库的创建和使用

8.2.3 在Qt项目中使用静态库

8.3 动态库

8.3.1 动态库的基本概念

8.3.2 动态库的创建和使用

(1)将动态库复制到/usr/lib目录和/lib目录(不包含子目录)下

(2)在命令前加环境变量

(3)修改/etc/ld.so.conf文件

8.3.3 在Qt中使用动态库

第9章 Qt文件编程

9.1 输入/输出设备类

9.2 文件类QFile

1. 构造函数

2. 设置文件名

3. 打开文件

4. 关闭文件

5. 读取文本文件

6. 从文件中读取二进制数据

7. 写文本文件

8. 写二进制文件

9. 判断文件是否存在

10. 获取文件名

11. 返回文件大小

12. 删除文件

13. 重命名文件

14. 复制文件

第10章 Qt菜单栏、工具栏和状态栏

10.1 菜单的设计与开发

10.1.1 菜单栏类QMenuBar

10.1.2 动作类QAction

10.1.3 菜单类QMenu

10.1.4 以可视化方式添加菜单

10.1.5 快捷菜单

10.2 工具栏的设计与开发

10.3 状态栏的设计与开发

10.3.1 将子菜单项提示信息显示在状态栏上

10.3.2 临时信息不需要标签

10.3.3 在状态栏上使用按钮

第11章 Qt图形编程

11.1 概述

11.2 重绘事件处理函数paintEvent()

11.3 点的坐标QPoint

11.3.1 成员函数

11.3.2 相关非成员

11.3.3 定义一个点

11.3.4 计算欧氏距离(两点之间的距离)

11.3.5 获取和设置点的分量值

11.3.6 利用x和y坐标的引用值实现自加和自减

11.3.7 利用重载运算符计算点坐标

(1)“+”运算符

(2)“-”运算符

(3)“/”运算符

(4)“*”运算符

11.4 矩形尺寸QSize

11.4.1 成员函数

11.4.2 非成员函数

11.4.3 定义一个矩形尺寸

11.4.4 获取和设置矩形尺寸的宽度和高度

11.4.5 利用宽度和高度的引用值实现自加和自减

11.4.6 缩放矩形尺寸

11.4.7 利用重载运算符计算矩形尺寸

(1)“+”运算符

(2)“-”运算符

(3)“/”运算符

(4)“*”运算符

11.5 颜色

11.5.1 构造颜色

11.5.2 获取和设置RGB分量

11.5.3 QColor、QString和QRgb 互转

11.6 画笔类QPen

11.6.1 画笔的属性

1. 线的样式

2. 线的粗细

3. 线的颜色

4. 线的端点(末端)样式

5. 线与线之间的连接方式

11.6.2 构造一支画笔

11.6.3 获取或设置画笔颜色

11.6.4 获取或设置画笔宽度

11.6.5 获取或设置画笔线型样式

11.7 画刷

11.8 画图类QPainter

11.8.1 画直线

11.8.2 画矩形

11.8.3 画椭圆和圆

11.8.4 绘制文本

第12章 Qt多线程编程

12.1 使用多线程的好处

(1)让软件拥有灵敏的响应

(2)充分利用多核处理器

(3)更高效的通信

(4)开销比进程小

12.2 多线程编程的基本概念

12.2.1 操作系统和多线程

12.2.2 线程的基本概念

12.2.3 线程的状态

(1)就绪态

(2)运行态

(3)阻塞态

(4)终止态

12.2.4 线程函数

12.2.5 线程标识

12.2.6 Qt多线程编程的3种方式

12.3 在Qt中使用POSIX多线程库

12.3.1 线程的创建

12.3.2 线程的属性

1. 分离状态

2. 堆栈尺寸

3. 调度策略

(1)SCHED_OTHER

(2)SCHED_FIFO

(3)SHCED_RR

12.3.3 线程的结束

1. 线程主动结束

2. 线程被动结束

12.3.4 线程退出时的清理机会

12.4 在Qt中使用C++ 11线程类

12.4.1 线程的创建

1. 默认构造函数

2. 初始化构造函数

3. 移动(move)构造函数

12.4.2 线程的标识符

12.4.3 当前线程this_thread

1. 让出CPU时间

2. 让线程暂停一段时间

12.5 使用Qt自身的线程类

12.5.1 Qthread类的基本使用

12.5.2 线程间通信

第13章 Qt多媒体编程

13.1 概述

13.2 QMediaPlayer类

13.2.1 重要的成员函数

13.2.2 重要信号

13.2.3 播放音频

13.2.4 播放视频

第14章 Qt网络编程

14.1 TCP/IP协议

14.1.1 基本概念

14.1.2 TCP/IP协议的分层结构

14.2 获取主机的网络信息

14.2.1 QHostInfo类

14.2.2 查询本机的主机名

14.2.3 查询本机的IP地址

1. 阻塞方式

2. 异步方式

14.3 TCP编程

第15章 Qt应用程序发布

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部