标签:LoginDialog Qt5 PostgreSQL postgres 数据库 db ui query include
用PostgreSQL来做一个Qt登陆界面的数据库。
首先,用pgAdmin创建要用到的数据库。
新建一个数据表
设定键
添加数据
得到数据表
新建一个UI
添加代码
LoginDialog.h
#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include <QDialog>
#include <QtSql>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QMessageBox>
#include <QDebug>
namespace Ui {
class LoginDialog;
}
class LoginDialog : public QDialog
{
Q_OBJECT
public:
explicit LoginDialog(QWidget *parent = nullptr);
~LoginDialog();
private:
Ui::LoginDialog *ui;
QSqlDatabase db;
private slots:
void on_pushButton_clicked();
};
#endif // LOGINDIALOG_H
LoginDialog.cpp
#include "logindialog.h"
#include "ui_logindialog.h"
LoginDialog::LoginDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::LoginDialog)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("127.0.0.1");
db.setUserName("postgres");
db.setPassword("postgres");
db.setDatabaseName("postgres");
if(!db.open())
{
qDebug() << "Failed to connect to databae.";
}
}
LoginDialog::~LoginDialog()
{
delete ui;
}
void LoginDialog::on_pushButton_clicked()
{
qDebug() << "try login";
QString username = ui->lineEdit->text();
QString password = ui->lineEdit_2->text();
QSqlQuery query;
if(query.exec("SELECT employeeid from user WHERE username = '" + username + "' AND password = '" + password + "'"))
{
if(query.size() > 0)
{
qDebug() << "login success";
// while(query.next())
// {
// QString empolyeeID = query.value(0).toString();
// QSqlQuery query2;
// if(query2.exec("SELECT name, age, gender, married FROM employee WHERE id = " + empolyeeID))
// {
// while(query2.next())
// {
// QString name = query2.value(0).toString();
// QString age = query2.value(1).toString();
// int gender = query2.value(2).toInt();
// bool married = query2.value(3).toBool();
// ui->name
// }
// }
// }
}
}
}
运行代码,得到
多谢,亲爱的美美。
标签:LoginDialog,Qt5,PostgreSQL,postgres,数据库,db,ui,query,include 来源: https://blog.csdn.net/islinyoubiao/article/details/113784600
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。