代码拉取完成,页面将自动刷新
同步操作将从 Takagi3/Qt_TrainTicketingSystem 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlQuery>
#include <QGraphicsDropShadowEffect>
#include <QDebug>
#include <QMessageBox>
#include <QCryptographicHash> // md5加密的库
#include "userInfoUtil.h"
/*
* Date: 2022/11/15
* Name: 王宇轩
* Student ID: 20301142
* Description: 这个类支持用户登陆、注册和密码找回三个功能,
* 通过stackedWidget存储这三个功能对应的界面,
* 点击按钮进行切换。
*/
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setFixedSize(this->geometry().size());
//设置图片的阴影效果
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#888888"));
shadow->setBlurRadius(30);
ui->label_image->setGraphicsEffect(shadow);
ui->label_rimage->setGraphicsEffect(shadow);
//槽函数
connect(this,SIGNAL(sendData(QString)),userWindow,SLOT(receiveData(QString)));
}
MainWindow::~MainWindow()
{
delete ui;
}
//**********************工具函数***********************
//清空此窗口所有输入框内的内容
void MainWindow::clearText()
{
ui->username->clear();
ui->password->clear();
ui->r_username->clear();
ui->r_pwd->clear();
ui->r_confirmPsd->clear();
}
//**********************登陆界面***********************
//登录功能
void MainWindow::on_loginButton_clicked()
{
//获取用户输入
QString username=ui->username->text();
QString password=ui->password->text();
//异常检测,若用户名或密码为空,则做出提示
if(username.isEmpty()||password.isEmpty()){
QMessageBox::information(this, "提示", "请输入用户名和密码!");
ui->username->setFocus();
return;
}
//判断是否存在该用户
if(!isUserExist(username)){
QMessageBox::critical(this, "提示", "当前用户不存在,请检查输入或注册用户");
return;
}
if(!isUserAndPswMatch(username,password)){
QMessageBox::critical(this, "提示", "用户名和密码不匹配!");
return;
}
//登陆成功,关闭当前窗口,打开系统主界面。
this->close();
emit this->sendData(username);
userWindow->show();
}
//注册功能
void MainWindow::on_registerButton_clicked()
{
//登陆界面点击注册按钮,切换到注册界面。
this->clearText();
ui->stackedWidget->setCurrentWidget(ui->registerPage);
}
//***********************注册界面***************************
//从注册界面返回登陆界面
void MainWindow::on_return_btn_clicked()
{
this->clearText();
ui->stackedWidget->setCurrentWidget(ui->loginPage);
}
//注册功能按钮
void MainWindow::on_register_btn_clicked()
{
//获取用户输入的注册信息
QString username=ui->r_username->text();
QString password=ui->r_pwd->text();
QString confirmPassword=ui->r_confirmPsd->text();
//异常检测,若用户名或密码为空,则做出提示
if(username.isEmpty()||password.isEmpty()||confirmPassword.isEmpty()){
QMessageBox::critical(this, "提示", "用户名或密码为空!");
ui->r_username->setFocus();
return;
}
if(!checkUsername(username)){
QMessageBox::critical(this, "提示", "请确保用户名由6-12位字母、数字、下划线组成");
return;
}
if(!checkPsw(password)){
QMessageBox::critical(this, "提示", "密码长度为6-12位,且必须为数字、大小写字母或符号中至少2种!");
return;
}
if(isUserExist(username)){
QMessageBox::critical(this, "提示", "当前用户名已被使用,请更换!");
return;
}
if(password!=confirmPassword){
QMessageBox::critical(this, "提示", "两次输入密码不一致!");
return;
}
// 将密码转换为md5格式
QString psw =
QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5).toHex();
QString sql=QString("insert into user(username,password) values('%1','%2')")
.arg(username,psw);
QSqlQuery result;
if(result.exec(sql)){
ui->stackedWidget->setCurrentWidget(ui->loginPage);
}else{
QMessageBox::critical(this, "提示", "注册失败!");
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。