会议室预约系统(一)—QT开发数据库学习
Created At :
Count:840
Views 👀 :
简介:
本篇博客用于记录QT软件结合数据库开发的学习过程
参考资料:
最新QT从入门到实战完整版|传智教育_哔哩哔哩_bilibili
Qt零基础系列10:使用Qt如何操作数据库 - 知乎 (zhihu.com)
一.QT
1.控件
1.1 窗体
1 2 3 4 5 6 7 8 9 10
| myWidget w;
setWindowTitle("窗口名称") resize(w,h) setFixedSize(w.h)
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,...)
|
触发信号
断开信号
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使用数据库步骤:
- 下载Mysql(网上很多教程)
- 本地/服务器创建数据库
- 建立数据库链接(和你创建的数据库一致)(详细代码见参考资料)
- 本地/服务器创建表
- 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