

Qt基础知识学习
Qt
C++
SQLite
★★★★★
Qt · 简介
Qt是由Qt Company开发的面向对象的跨平台C++图形用户界面应用程序开发框架。
前期 · 准备
01
辨析Qt(开发包/库文件)与Qt Creator(IDE,即集成开发环境)
Qt如上定义是图形用户界面应用程序开发框架,可简单理解为开发包或库文件;而Qt Creator相当于集成的编译器,用于将源代码编译成可执行程序。
02
Qt、Qt Creator的下载和安装
以Qt5.8.0版本为例:
(1) 官网下载qt-opensource-windows-x86-5.8.0.exe(应用程序)并运行——(opensource表示开源版本,windows-x86表示Windows平台,5.8.0是当前版本号);
(2) 登录(Login)与注册(Sign-up)环节可直接跳过(skip),不影响程序的安装;
(3) 安装文件夹——安装路径的设置(注意:安装路径不能有中文);
(4) 选择组件(保持默认选择);
(5) Launch Qt Creator(启动Qt Creator);
Qt程序 · 设计
01
新建Qt程序的两种方式
01 |使用纯代码方式编码; |
02 |使用.ui文件(进入设计模式) |
| _ |
| _ |
02
Qt程序文件类型主要包括:
01 |.pro文件:项目文件,包含项目相关信息; |
02 |.cpp文件(源文件) |
03 |.h文件(头文件) |
04 |.ui(界面文件) |
05 |.qrc(资源文件) |
| _ |
| _ |
| _ |
03
Qt Creator提供三个窗口基类:
01 |QMainWindow: 主窗口类 |
02 |QDialog: 各种对话框的基类 |
①模态对话框:在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭; ②非模态对话框:当被打开时,用户既可选择和该对话框进行交互,也可选择同应用程序的其他窗口交互 |
03 |QWidget: 基础窗口部件类,所有的窗口部件都继承自QWidget |
| _ |
| _ |
| _ |
| _ |
04
Qt相关机制
信号与槽机制
信号与槽机制内涵
信号与槽用于两个对象之间的通信,信号与槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出的特征,即当改变了一个部件时,其他部件能了解到该变化并执行相应槽函数代码。
信号与槽函数的声明
声明信号:关键字signals;声明槽函数:关键字slots
不同窗口的响应
同一窗口无需显式发射信号,不同窗口可用关键字emit显式发射信号从而实现(触发一窗口类的控件,而在另一窗口类中做出相应的响应)的效果。
信号与槽关联
——注意:一个信号可与多个槽函数关联
方式一:connec()关联
connect(发射信号的对象,信号,接受信号的对象,槽函数)
如:connect(btn,SIGNAL(clicked(bool)),this,SLOT(adding()))
方式二:在设计方式关联
进入设计模式→点击设计器上方的“编辑信号/槽”图标或者按下快捷键F4,从而进入部件的信号与槽的编辑模式→在控件上按住鼠标左键,然后拖动到窗口界面,再松开鼠标左键→弹出配置连接对话框,并选中下面的“显示从QWidget继承的信号和槽”选项→左边信号栏选定信号,右边槽函数栏选定相应槽函数。


方式三:自动关联
设计模式中右击控件选择“转到槽”就实现了关联,并可在相应的.cpp文件中进行槽函数的编码。自动关联就是将关联函数整合到槽命名中,由字符on、发射信号的部件对象名和信号名组成,如on_pushButton_clicked();
事件机制
事件由应用程序内部(如QTimer定时器事件)或者外部(如鼠标事件和键盘事件)产生,被封装成一个个对象组成队列,再通过QApplication::exec()进入事件循环处理。
——Qt程序是事件驱动的,事件的发生和处理是程序运行的主线。
| _ |
| _ |
| _ |
| _ |
05
SQLite数据库的应用
(1)数据库(Database)概念:存放数据的仓库,可供多个用户共享并具有一定的安全性。
(2)数据定义语言(DDL,Data Definition Language)、数据操纵语言(DML、Data Manipulation Language)、数据查询语言(DQL、Data Query Language)
(3)Qt提供进程内轻量级数据库SQLite,不需要配置,不需要安装,也不需要管理员(且编程接口简单易用)→下载运行数据库可视化工具SQLiteStudio
(4)SQLiteStudio的使用:
①添加数据库
②设置数据库名称和路径(或直接选择数据库文件)后,测试连接,连接完成后点击OK即可。


③“结构”中显示数据框架(其中Primary Key为主关键字),“数据”中显示具体数据,如下:


(5)Qt操作数据库
① 修改项目配置文件
——在项目的.pro文件中加入QT += sql语句
② 加入头文件
#include
#include
③ 连接数据库:
如:QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
④ 设置数据库名称:
如:db.setDatabaseName("info");
⑤ 打开数据库:
如:db.open();
⑥ QSqlQuery类用于执行SQL语句:
如:QSqlQuery query;
query.exec("create table users(name text primary key,password int,phoneNumber int)");//创建表格
(6) 简单的SQL语法:
① 创建表格
格式:create table 表名(内容 类型)
② 向表中插入信息
格式:insert table 表名 values(表中的内容)
③ 从表中删除信息
格式:delete from 表名 where 列名 = 条件
④ 查询表中的内容
格式:select 列名 from 表名 where 列名 = 条件
查询所有的信息:select * from 表名
⑤ 修改表中的数据
格式:update 表名 set 列名 = 新内容 where列名 = 条件
⑥ 删除表格
格式:drop table 表名
生成应用程序(.exe) · 发布集合
01
打开Qt工程,以Release方式编译运行项目
02
进入build-***-Release工程目录,拷贝***.exe文件
03
新建一文件夹,复制***.exe文件
04
打开Qt for Desktop
如下:

05
进入新建文件夹所在目录,执行windeployqt (主文件名.exe)命令,如

06
然后在新建文件夹中就可以看到windeployqt工具自动复制的插件文件夹和dll文件、qm文件。这时候得到的就是完整的应用程序(.exe)发布集合。
猿于此
当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地。

本文介绍了Qt的基础知识,包括Qt的简介、安装过程、新建Qt程序的方式、信号与槽机制的使用、事件机制的概念,以及SQLite数据库在Qt中的应用。详细讲解了如何连接和操作SQLite数据库,最后阐述了如何生成和发布Qt应用程序的完整步骤。
1万+

被折叠的 条评论
为什么被折叠?



