用户登录、注册
#include "widget.h"
#include "ui_widget.h"
#include <QStyle>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include <QMessageBox>
#include <QSettings>
#include <QtDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
QPixmap minPix = style()->standardPixmap(QStyle::SP_TitleBarMinButton);
QPixmap closePix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton);
ui->mintoolButton->setIcon(minPix);
ui->closetoolButton->setIcon(closePix);
ui->mintoolButton->setStyleSheet("bakground-color:tranparent:");
ui->closetoolButton->setStyleSheet("bakground-color:tranparent:");
connect(ui->mintoolButton,&QPushButton::clicked,this,&Widget::showMinimized);
connect(ui->closetoolButton,&QPushButton::clicked,this,&Widget::close);
qDebug()<<QSqlDatabase::drivers();
QSqlDatabase DB;
QString aFile="./dataBase.db";
if(aFile.isEmpty())
{
qDebug()<<" 数据库文件加载失败 " ;
return ;
}
DB=QSqlDatabase::addDatabase("QSQLITE");
DB.setDatabaseName(aFile);
if(!DB.open())
{
qDebug()<<"数据库文件打开失败";
qDebug()<<DB.lastError().text();
}
qDebug()<< " 打开数据库文件成功 " ;
QSettings setting("config.ini",QSettings::IniFormat);
QString account = setting.value("section/account").toString();
QString password = setting.value("section/password").toString();
ui->accountEdit->setText(account);
ui->passwordEdit->setText(password);
connect(ui->registerButton,&QPushButton::clicked,this,[=](){
QString account = ui->accountEdit->text();
QString password = ui->passwordEdit->text();
QSqlQuery query(DB);
if(!query.exec("create table user(account varchar(255) primary key, password varchar(255))"))
{
qDebug() << "Error: Fail to create table."<< query.lastError();
}
else
{
qDebug() << "Table created!";
}
QString qs = QString("insert into user(account,password) values('%1','%2')")
.arg(account).arg(password);
if(query.exec(qs))
{
QMessageBox::information(this,"注册","注册成功");
}
else
{
QMessageBox::information(this,"注册","注册失败");
qDebug()<<query.lastError().text();
}
qDebug()<<"查看数据库中所有的表:";
QStringList str_table=DB.tables();
qDebug()<<str_table;
qDebug()<<"查看数据库中数据";
query.prepare ("SELECT * FROM user");
query.exec();
while(query.next())
{
qDebug()<<QString("account:%1,password:%2").
arg(query.value("account").toString()).arg(query.value("password").toString());
}
});
connect(ui->loginButton,&QPushButton::clicked,this,[=](){
QString account = ui->accountEdit->text();
QString password = ui->passwordEdit->text();
QSqlQuery query;
QString qs = QString("select * from user where account ='%1' and password='%2'").
arg(account).arg(password);
if(!query.exec(qs))
{
qDebug() << query.lastError().text();
return;
}
if(query.next())
{
QMessageBox::information(this,"登录","登录成功");
connect(tw,&TestWidget::testSigna,this,&Widget::show);
if(ui->checkBox->isChecked())
{
QSettings setting("config.ini",QSettings::IniFormat);
setting.beginGroup("section");
setting.setValue("account",account);
setting.setValue("password",password);
setting.endGroup();
}
}
else
{
QMessageBox::information(this,"登录","登录失败");
}
});
}
Widget::~Widget()
{
delete ui;
}
#按钮的ui实现
结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)