会议室预约系统(一)—QT开发数据库学习

  1. 一.QT
    1. 1.控件
      1. 1.1 窗体
      2. 1.2 按钮
      3. 1.3 对话框
      4. 1.4 编辑框
      5. 1.5 文本编辑框
      6. 1.6 下拉式选项框
    2. 2.信号和槽
    3. 3.QT设计联合代码开发
  2. 二.数据库

简介:
  本篇博客用于记录QT软件结合数据库开发的学习过程


参考资料:

最新QT从入门到实战完整版|传智教育_哔哩哔哩_bilibili

Qt零基础系列10:使用Qt如何操作数据库 - 知乎 (zhihu.com)

一.QT

1.控件

1.1 窗体

1
2
3
4
5
6
7
8
9
10
myWidget w;	//创建窗体

//set类
setWindowTitle("窗口名称") //设置窗口名称
resize(w,h) //重置窗口大小
setFixedSize(w.h) //设置固定窗口大小

//print类
show() //显示窗口

1.2 按钮

1
2
3
4
5
6
7
8
9
10
11
#include <QPushButton>

QPushButton* btn=new QPushButton("按钮名称",父窗口); //创建按钮在父窗口内(不填默认新开窗口创建)

setText();
setParent();
move(x,y); //移动按钮
resize(w,h);

//信号
clicked();

1.3 对话框

1
2
3
4
5
#include <QDialog>
exec() //阻塞其他操作(模态)
//消息对话框
QMessageBox::critical(父类,标题,信息) //错误对话框
QMessageBox::information(父类,标题,信息) //信息提示对话框

1.4 编辑框

1
2
3
4
#include <QLineEdit>
text();
setText();
setReadOnly(true);

1.5 文本编辑框

1
2
#include <QtextEdit>
toPlainText(); //获取文本内容

1.6 下拉式选项框

1
2
3
4
5
#include <QComboBox>
currentIndex(); //当前选项编号

//信号
currentIndexChanged();

2.信号和槽

信号和槽是指,当某一控件被操作时,发出信号,然后由信号接收者接收信号,并通过槽函数处理信号

1
connect(信号发送者,信号(函数地址),信号接收者,处理信号函数(槽函数地址);

自定义信号:
无返回值
写在signal下
需要声明不需要实现
可以带参数,可以重载(参数要多于槽函数参数)

自定义槽:
无返回值
一般的声明在public slots下
需要实现
可以带参数,可以重载

重载后 connect需要如下实现:

1
2
void(ClassName:: *p)(参数)=&ClassName::函数名;
connect(class,p,...)

触发信号

1
emit 函数名;

断开信号

1
discount();

3.QT设计联合代码开发

点击界面文件中的mainwindow.ui,然后进行界面设计,完成后打开Qt 6.4.3(MinGW 11.2.0 64-bit) (打开你对应版本即可),cd 到你界面文件所在的文件夹,输入:
uic -o ui.h mainwindow.ui
即可在该文件夹生成ui.h头文件

使用时先实例化ui.h类:
Ui_mainWindow ui=Ui_mainWindow();
然后调用setupUi()方法:
ui.setupUi(yourWindow_address);
这时你的界面就和你设计的界面一样了

获取你的界面的控件的方法:
QType* a= yourWindow->findChild<QType*>("itemName");


二.数据库

qt使用数据库步骤:

  1. 下载Mysql(网上很多教程)
  2. 本地/服务器创建数据库
  3. 建立数据库链接(和你创建的数据库一致)(详细代码见参考资料)
  4. 本地/服务器创建表
  5. qt中执行sql语句对数据库增删查改

qt执行sql语句步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//1.在建立好数据库链接后获取数据库链接
QSqlDatabase db=QSqlDatabase::database(connectionName);
//2.传入数据库链接
QSqlQuery query(db);
//3.设计sql语句
query.prepare("SELECT * FROM conference_users WHERE users_name=:users_name");
query.bindValue(":users_name",name);
//或者
QString sql = "SELECT * FROM conference_users WHERE users_name='" + name + "'";
//4.执行sql语句
if(!query.exec(sql)) qDebug()<<"查找失败";
//5.获取结果
if(query.size()==0) return NULL;
while (query.next()){
QString str=query.value(1).toString();
//...
}

结语:熟练使用QT设计和代码联合开发很重要
  



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 21009200039@stu.xidian.edu.cn

💰

×

Help us with donation