基于Qt中QMessageBox类的登陆界面对话框应用

目标

完善对话框,点击登录弹出对话框,如果账号和密码匹配,则弹出信息对话框,给出提示"登录成功",提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面

如果账号和密码不匹配,弹出错误对话框,给出信息"账号和密码不匹配,是否重新登录",并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面

如果用户点击取消按钮,则弹出一个问题对话框,给出信息"您是否确定要退出登录?",并给出两个按钮Yes|No,用户迪纳基Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能

要求:基于属性版实现、基于静态成员函数实现 两个种方式都要有

界面一功能代码

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

void Widget::my_close()
{
    close();
}

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    this->setWindowIcon(QIcon(":/picture/lol.webp"));
    this->setWindowTitle("英雄联盟");
    ui->setupUi(this);
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);
    connect(ui->cbutt,SIGNAL(clicked()),this,SLOT(my_close()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_logbutt_clicked()
{
    if((ui->namelet->text()=="admin")&&(ui->passwordle->text()=="123456")){
        //登录成功,弹出对话框并跳转
        QMessageBox logif (QMessageBox::Information,
                          "登录信息",
                          "登录成功",
                           QMessageBox::Ok,
                          this
                          );
        int ret = logif.exec();
        if(ret ==  QMessageBox::Ok){
            this->close();
            emit my_log();
        }
    }else{
        //登录失败,弹出对话框,重新输入或退出
        int ret = QMessageBox::critical(
                    this,
                    "错误",
                    "密码或用户名输入错误!",
                    QMessageBox::Yes|QMessageBox::No,
                    QMessageBox::Yes
                    );

        if(ret == QMessageBox::Yes){
            ui->passwordle->clear();
        }else{
            this->close();
        }
    }
}

实现效果

密码输入错误

点击"yes"会回到登录界面,并清空密码栏

密码输入正确

点击"ok"会跳转页面

知识点思维导图

相关推荐
benchmark_cc几秒前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
程序员无隅1 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
Python+991 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
二炮手亮子2 小时前
浅记java线程池
java·开发语言
zmzb01032 小时前
C++课后习题训练记录Day157
开发语言·c++
dunge20262 小时前
2026年7月最新ChatGPT Plus / Pro 与 Codex:当 AI Agent 最新5.6版本来袭,必须理解事务、幂等与补偿
开发语言·人工智能·python
爱吃牛肉的大老虎4 小时前
rust基础之环境搭建
java·开发语言·rust
openKylin4 小时前
与全球技术演进同频,openKylin 3.0从C迈向Rust
c语言·开发语言·rust·开源·开放原子·openkylin
疯狂打码的少年5 小时前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
程高兴5 小时前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab