QT开发中文网

争取每行一个注释

#include "login.h" // 包含登录窗口的头文件
#include "ui_login.h" // 登录窗口的UI定义
#include <QFile> // 文件读写类
#include <QTextStream> // 文本流类,用于读写文本数据
#include <QJsonArray> // JSON数组类,用于操作JSON数组数据
#include <QJsonDocument> // JSON文档类,用于解析和创建JSON文档
#include <QJsonValue> // JSON值类,用于表示JSON中的值
#include <QJsonObject> // JSON对象类,用于操作JSON对象数据
#include "administratorform.h" // 管理员表单界面的头文件
#include <QGuiApplication> // GUI应用程序类,提供与GUI相关的功能和属性访问方法
#include <QScreen> // 屏幕信息类,用于获取屏幕尺寸等信息
#include <QMessageBox> // 消息框类,显示消息提示框

Login::Login(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this); // 设置UI界面

    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); // 设置密码输入框为小黑点模式

    QString filePath = "jsondata.json"; // JSON数据文件路径

    QFile file(filePath); // 打开JSON文件
    file.open(QIODevice::ReadOnly);

    jsonData = file.readAll(); // 读取JSON数据
    file.close();

    jsonDoc = QJsonDocument::fromJson(jsonData); // 解析JSON数据
    jsonObj = jsonDoc.object();  // 获取JSON对象
}

Login::~Login()
{
   delete ui; // 析构函数,释放内存
}

void Login::on_btn_login_clicked()
{
   if(ui->lineE_user_name->text().isEmpty() || ui->lineE_pwd->text().isEmpty())
   {
      QMessageBox::warning(this, "", "请输入完整信息", QMessageBox::Yes, QMessageBox::NoButton);
      return;
   }

   QString adminName = ui->lineE_user_name->text(); // 获取用户输入的用户名
   QString password = ui->lineE_pwd->text();  // 获取用户输入的密码

   QJsonObject name = jsonObj[adminName].toObject();  // 在JSON对象中查找对应的记录

   if(name[adminName].toString() == password)  // 验证用户名和密码是否匹配
   {
      AdministratorForm *ad = new AdministratorForm(name);  // 创建管理员表单界面对象,并传递用户信息
      ad->setAttribute(Qt::WA_DeleteOnClose); // 设置关闭时自动释放内存
      ad->show();  // 显示管理员表单界面
      this->close();  // 关闭当前登录窗口
    }
    else
    {
        QMessageBox::warning(this, "", "用户名或密码错误", QMessageBox::Yes, QMessageBox::NoButton); // 弹出警告提示框,显示用户名或密码错误
    }
}

void Login::on_btn_forget_clicked()
{
    this->close(); // 关闭当前登录窗口
}

以上是详细注释的代码示例,实现了一个登录窗口,使用了Qt框架进行开发。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=10583

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?