1.ui文件设计
样式表,右键-改变样式表
2.main.cpp
#include "cell_main.h"
#include <QApplication>
#include "cell_login.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
cell_login mlg;
int ret=mlg.exec();
if(1==ret){
cell_main w;
w.show();
return a.exec();
}
if(0==ret){
exit(0);
return 0;
}
return 0;
}
3.cell_login.cpp
#include "cell_login.h"
#include "ui_cell_login.h"
cell_login::cell_login(QWidget *parent) :
QDialog(parent),
ui(new Ui::cell_login)
{
ui->setupUi(this);
}
cell_login::~cell_login()
{
delete ui;
}
//登录
void cell_login::on_btn_ok_clicked()
{
setResult(1);
hide();
}
//退出
void cell_login::on_btn_cancel_clicked()
{
setResult(0);
hide();
}
4.cell_login.h
#ifndef CELL_LOGIN_H
#define CELL_LOGIN_H
#include <QDialog>
#include <QMessageBox>
namespace Ui {
class cell_login;
}
class cell_login : public QDialog
{
Q_OBJECT
public:
explicit cell_login(QWidget *parent = nullptr);
~cell_login();
private slots:
void on_btn_ok_clicked();
void on_btn_cancel_clicked();
private:
Ui::cell_login *ui;
};
#endif // CELL_LOGIN_H
5.sqlmanage.h
添加数据库后再写登录
#ifndef SQLMANAGER_H
#define SQLMANAGER_H
#include <QtDebug>
#include <QSqlDatabase>
#include <QDateTime>
#include <QDebug>
#include <QCoreApplication>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
class SqlManager
{
public:
SqlManager();
~SqlManager();
//单例模式
static SqlManager* instance;
static SqlManager* getInstance(){
if(nullptr==instance){
instance=new SqlManager;
}
return instance;
}
void test();
//初始化连接数据库
void init();
//登录
bool login(QString strUser,QString strPass);
private:
QSqlDatabase m_db;
};
#endif // SQLMANAGER_H
6.sqlmanage.cpp
bool SqlManager::login(QString strUser, QString strPass)
{
QSqlQuery q(m_db);
QString strSql=QString("select * from sys_user where userName='%1' and password='%2'").arg(strUser).arg(strPass);
bool ret=q.exec(strSql);
if(!ret){
qDebug()<<q.lastError().text();
}
else
ret=q.next();
return ret;
}
6.修改文件
在cell_login.cpp 中,修改
//登录
void cell_login::on_btn_ok_clicked()
{
// setResult(1);
// hide();
auto ret=SqlManager::getInstance()->login(ui->lineEdit_user->text(),ui->lineEdit_pswd->text());
// qDebug()<<"login:"<<ret;
// qDebug()<<ui->lineEdit_user->text();
// qDebug()<<ui->lineEdit_pswd->text();
if(ret){
setResult(1);
hide();
}else{
QMessageBox::information(nullptr,"信息","用户名或密码错误");
setResult(0);
}
}