以下是对代码的注释:
#include "login.h"
#include "ui_login.h"
#include <QFile>
#include <QTextStream>
#include "QJsonArray"
#include "QJsonDocument"
#include "QJsonValue"
#include "QJsonObject"
#include "administratorform.h"
#include <QGuiApplication>
#include <QScreen>
#include "QMessageBox"
Login::Login(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
// 获取主屏幕信息
QScreen *primaryScreen = QGuiApplication::primaryScreen();
QRect screenGeometry = primaryScreen->geometry();
int screenWidth = screenGeometry.width();
int screenHeight = screenGeometry.height();
this->setFixedSize(screenWidth, screenHeight);
ui->label_user_name->setScaledContents(true); //图片自适应label大小
ui->label_pwd->setScaledContents(true); //图片自适应label大小
ui->lineE_pwd->setEchoMode(QLineEdit::Password);//设置为小黑点
// 1. 读取该文件内容
QString filePath = "jsondata.json";
// 打开JSON文件
QFile file(filePath);
file.open(QIODevice::ReadOnly);
// 读取JSON数据
jsonData = file.readAll();
file.close();
// 解析JSON数据
jsonDoc = QJsonDocument::fromJson(jsonData);
jsonObj = jsonDoc.object();
}
Login::~Login()
{
delete ui;
}
void Login::on_btn_login_clicked()
{
if(ui->lineE_user_name->text() == "" or ui->lineE_pwd->text() == "")
{
QMessageBox::warning(this, "", "请输入完整信息", QMessageBox::Yes, QMessageBox::NoButton);
return;
}
// 获取用户输入的用户名和密码
adminName = ui->lineE_user_name->text();
password = ui->lineE_pwd->text();
name = jsonObj[adminName].toObject();
// 验证用户名和密码是否匹配
if(name[adminName].toString() == password)
{
AdministratorForm * ad = new AdministratorForm(name);
ad->setAttribute(Qt::WA_DeleteOnClose);
ad->show();
this->close();
return;
}
QMessageBox::warning(this, "", "用户名或密码错误", QMessageBox::Yes, QMessageBox::NoButton);
}
void Login::on_btn_forget_clicked()
{
this->close();
}
这段代码主要是一个登录窗口的实现,具体功能如下:
- 在构造函数中,设置窗口属性为无边框,并根据屏幕大小调整窗口尺寸。
- 读取名为 “jsondata.json” 的 JSON 文件内容并解析。
- 在登录按钮点击事件中,检查用户是否输入了完整的用户名和密码。若未输入完整信息,则弹出警告提示框。
- 获取用户输入的用户名和密码,并在 JSON 对象中查找对应的记录。
- 如果用户名和密码匹配,则打开一个名为
AdministratorForm
的窗口并关闭当前登录窗口;否则,弹出警告提示框显示用户名或密码错误。 - 忘记密码按钮点击事件中,关闭当前登录窗口。
以上是对代码逻辑的注释说明,没有对代码做任何修改。
内容由零声教学AI助手提供,问题来源于学员提问