目录
一、讲解之前
二、数据库基本操作
三、模糊查询
二、编程之前
三、通信结构
一、设置应用图标(熟悉)
二、Debug和Release模式(掌握)
三、动态链接库(掌握)
四、打包(熟悉)
一、讲解之前
Qt本身并不具有数据库,只是Qt可能调用市面上主流的关系型数据库,支持:
Qt5版本开始,内置了一个SQLite数据库,并自带驱动程序。原因是SQLite是一个轻量级的数据库,在嵌入式领域广泛使用,通常使用扩展名.db .db3
由于Qt支持众多数据库的连接,因此为这些数据库的操作规定了统一的API接口,除了部分特殊接口有所差别外,使用的方式大致相似。
Qt项目使用数据库功能需要添加sql模块,在.pro文件中:
二、数据库基本操作
本次主要用到三个类:
- QSqlDatabase
数据库连接类
当数据库连接打开成功时,会在项目的构建目录下生成SQLite对应的数据库文件,如下所示。
- QSqlQuery
数据库操作类,数据库操作的验证可以通过SQLiteSpy软件,在项目的构建目录中打开数据库文件进行查看。
在执行SQL语句的过程中,注意不要拼接SQL语句,因为会引发安全性问题:SQL注入。Qt中使用SQL语句预处理+参数替换的方式避免SQL注入问题。
- QSqlError
数据库异常类
三、模糊查询
模糊查询需要用到两个操作符:% _
- % 表示匹配任意多个(0,1,...,n)字符
- _ 表示匹配一个字符
_pple匹配的结果有:Apple Bpple ...
_ppl_匹配的结果有:Apple Applz ...
__匹配的结果:ax us ()
A%匹配的结果:所有A开头的单词
_a%匹配的结果:所偶第二个字母是a的单词
以上结果结合LIKE 或 GLOB 语句来执行,前者不区分大小写,后者区分大小写。
【例子】查询姓张的同学
SELECT * FROM stu WHERE name LIKE '张%';
二、编程之前
Qt要使用网络编程相关头文件,需要在.pro文件中添加network模块。
本次网络编程主要使用两个网络类:
- QTcpServer
用于管理服务端连接的类,主要功能是管理。
部分函数如下:
函数功能:开始服务器监听
参数1:接受来自哪个IP地址的连接,QHostAddress类是IP地址封装类,默认值是QHostAddress::Any,表示接受任何IP地址的连接。
参数2:服务器的端口号,默认值0表示随机。
返回值:监听服务开启的结果。
函数功能:当客户端发起请求给服务器发射的信号。
函数功能:获取与客户端的连接通信的QTcpSocket对象
- QTcpSocket
表示一个基于TCP的Socket连接类,主要功能是通信。
部分函数如下:
函数功能:连接到主机(服务器)参数1:目标主机的IP地址
参数2:目标主机的端口号
参数3:读写模式,默认为可读可写
获得连接对面的IP地址
获得对面的端口号
已经连接和断开连接发射的信号
每次新数据可读时发射的信号
三、通信结构
消息的发送是双向对等的,可以使用QTextSream类来完成,常用函数如下:
QTextStream::QTextStream(QIODevice * device)
构造函数,参数为基于哪个IO对象,支持所有的Qt的IO类。
QTextStream & QTextStream::operator<<(const QString & string)
成员函数运算符重载,输出运算符,支持链式调用
一、设置应用图标(熟悉)
设置应用的步骤如下:
1. 设计一款图标(或者下载),通常的图片格式(建议使用png)。建议使用256x256的分辨率。
2. 转换图片为图标的.ico格式,参考在线网站:
Convertio — 文件转换器
PNG转ICO, 在线转换器 - 转换视频, 音乐, 图像, PDF - Office-Converter.com
3. 把ico文件更改为合法名称,放置到工作目录下。
4. 在Qt Creator中,选中项目名称,鼠标右键,点击“添加新文件”
5. 在弹出的窗口中,按照下图所示进行操作。
6. 在弹出的窗口中,输入图标配置文件的名称 (例如:icon_config.rc),注意不要丢失文件扩展名.rc
7. 在项目管理页面,直接点击“完成”,可以在项目目录中看到多了一个.rc文件,双击进入编辑。
8. 添加下面的代码,双引号中的内容是图片文件的文件名。点击保存。
IDI_ICON1 ICON DISCARDABLE "icon.ico"
9. 进入.pro文件,添加下面的代码,icon_config.rc为图标配置文件的名称。点击保存。
RC_FILE += icon_config.rc
10. 运行程序,可以看到图标设置成功!
二、Debug和Release模式(掌握)
程序构建的模式可以在Qt Creator中设定,默认为Debug模式。
Debug模式下,生成的可执行文件中有很多调试信息,这样的程序其特点是运行速度较慢,并且体积比较大,适合程序员进行开发调试使用。
Release模式下,生成的可执行文件中一般不包含调试信息,而且体积比较小,运行速度相对较快,这样的程序适合发布给用户使用。
平常开发使用Debug模式,最后发布时可以改为Release模式,这两种模式的构建目录不同(开启影子构建)。但是目录中文件的结构是类似的,需要注意的是尽管这两种模式的构建目录都有debug和release文件夹,但是只有当前模式对应的文件夹下有exe可执行文件。
默认配置下,双击exe可执行文件(无论debug还是release)都是不能运行的,如下所示。
上面的窗口表示,单独的exe文件是不能执行的,因为exe文件仅仅是编写的代码而已,这个文件的运行还依赖于Qt的API调用接口。
三、动态链接库(掌握)
上面的弹窗表示可执行文件需要扩展名为dll格式的文件才能运行,dll格式是Qt在Windows操作系统下的动态链接库文件,实际上exe的执行不仅仅依赖于一个dll文件,而是若干个dll文件。
有以下两种补充dll文件的方法:
法一:直接补充所有常用的dll库文件,这种方法的优点是配置简单,缺点是有冗余的dll库,当前开发版本常用的dll库的下载连接链接如下所示:
百度网盘 请输入提取码
需要新建一个文件夹(不要包含中文字符),把dll文件与exe文件放到这个文件夹下,此时再次运行exe即可。
法二:使用Qt自带的windeployqt.exe程序提取部分exe文件运行所需要的dll文件,剩下的一部分需要手动补充。
使用方法看回放。
四、打包(熟悉)
本次使用打包工具是:isetup
安装包下载链接:https://pan.baidu.com/s/1ePF9WkLsDKSCpoXIGcR6rg
安装过程避免使用中文字符路径,一直下一步即可。
打包过程如下:
1. 启动打包程序,按照下图所示进行操作。
2. 在新窗口中直接点击Next,如下所示。
3. 在新弹出的窗口中,依次输入应用名称、版本号、发布者、网址后,点击Next,如下所示。
4. 在新弹出的窗口中,可以更改软件的默认安装路径。然后,点击Next,如下所示。
5. 首先选择可执行文件,然后点击
,直接选择打包软件的根目录(即主文件夹),这样可以吧这个文件夹下的子文件都一并导入。
最后,点击Next执行下一步。
6. 在弹出的窗口中,根据个人需求来配置下面的选项后,点击Next。
7. 在弹出的页面中可以配置安装许可协议,直接点击Next忽略。
8. 在弹出的窗口,选择需要的安装包语言(没有中文......),点击Next。
9. 在弹出的窗口中,依次进行下图选项的配置后,点击Next
10. 在弹出的窗口中,直接点击Next。
11. 在弹出的窗口中,直接点击Finish
12. 询问是否编译配置好的脚本,点击“是”。
13. 会再次询问是否保存当前的配置脚本,以便于后期再次发布时,只更改版本号。
14. 等待编译完成即可。