代码拉取完成,页面将自动刷新
#include "registration.h"
#include "ui_registration.h"
#include <QMessageBox>
#include<QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
Registration::Registration(QWidget *parent) :
QWidget(parent),
ui(new Ui::Registration)
{
ui->setupUi(this);
setWindowTitle("注册"); // 设置窗口名称
// 设置左上角图标
this->setWindowIcon(QIcon(":/images/res/BitMap/key1.bmp"));
// 加载json文件中的数据
QFile file(dataFileName);
if(file.exists()) // 文件存在才操作
{
// 读取文件中的数据 [{"name": "bob", "pwd": "123"}, {"name": "lucy", "pwd": "456"}]
file.open(QIODevice::ReadOnly);
QByteArray userData = file.readAll(); // 读取所有数据
QJsonDocument userFromJson = QJsonDocument::fromJson(userData); // 将数据转换成json对象
if(!userFromJson.isNull() && userFromJson.isArray())
{
QJsonArray userArray = userFromJson.array();
for (const QJsonValue &qJsonValue : userArray) { // 遍历数据
if(qJsonValue.isObject())
{
QJsonObject object = qJsonValue.toObject();
QMap<QString,QString> map;
// 遍历所有键值对
for (auto it = object.constBegin(); it != object.constEnd(); ++it) {
map.insert(it.key(), it.value().toString());
}
users.push_back(map);
}
}
}
file.close(); // 关闭文件
}
}
Registration::~Registration()
{
// 析构时将用户数据写入文件
writeUsers();
delete ui;
}
bool Registration::isUserPwd(QString name, QString pwd)
{
if(users.size() < 1)
{
return false;
}
// 遍历用户数据
for (const QMap<QString, QString> &map : users) {
if(map["name"] == name) // 找到用户
{
// 判断密码是否相等
if(map["pwd"] == pwd)
return true;
}
}
return false;
}
void Registration::on_surePushButton_clicked()
{
// 校验密码是否一致
QString pwd = ui->pwdLineEdit->text();
QString password = ui->passwordLineEdit->text();
if(pwd != password)
{
QMessageBox::warning(this,"警告", "两次输入的密码不一致,请检查!");
return;
}
userName = ui->nameLineEdit->text();
this->password = pwd;
QMap<QString, QString> map;
map.insert("name", userName);
map.insert("pwd", pwd);
users.push_back(map); // 将用户信息加入到数据中
writeUsers();
// 跳转会登录页
emit registToLogin();
}
void Registration::on_cancelPushButton_clicked()
{
// 用户点击取消清空数据并返回
ui->pwdLineEdit->setText("");
ui->passwordLineEdit->setText("");
ui->nameLineEdit->setText("");
// 跳转会登录页
emit registToLogin();
}
void Registration::writeUsers()
{
QJsonArray jsonArray;
// 遍历用户数据
for (const QMap<QString, QString> &map : users) {
QJsonObject jsonObj;
for (auto it = map.constBegin(); it != map.constEnd(); ++it) {
jsonObj.insert(it.key(), QJsonValue::fromVariant(it.value()));
}
jsonArray.append(jsonObj);
}
QJsonDocument jsonDoc(jsonArray);
QByteArray jsonData = jsonDoc.toJson();
// 写入文件
QFile file(dataFileName);
file.open(QIODevice::WriteOnly);
file.write(jsonData);
file.close();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。