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=10582

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?