当前位置: 首页 > article >正文

DAY4 登陆界面补充对话框

作业:

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

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

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

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

代码:

基于day3修改widget.cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setWindowFlag(Qt::FramelessWindowHint);
    //去空白
    this->setAttribute(Qt::WA_TranslucentBackground);
    //cancel按钮的信号和槽
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(my_cancel()));
    //login按钮的信号和槽
    QObject::connect(ui->pushButton, &QPushButton::clicked, this, &Widget::my_click);
}

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

//cancel按钮的槽函数
void Widget::my_cancel()
{
    //弹出问题消息对话框(基于属性的对话框)
    QMessageBox msg(QMessageBox::Question,"","是否确定要退出登陆?",QMessageBox::Yes |
                    QMessageBox::No);
    int res = msg.exec();
    if(res == QMessageBox::Yes)
    {
        this->close();
    }
    else
    {
        //关闭对话框
    }
}

//自定义槽函数
void Widget::my_click()
{
    if(ui->lineEdit->text()=="admin" && ui->lineEdit_2->text()=="123456")
    {
        //弹出登陆成功的提示消息对话框(基于静态成员函数的对话框)
        QMessageBox::information(this,"提示","登陆成功");
        //关闭当前窗口
        this->close();
        //手动发送自定义信号
        emit my_signal();
    }
    else
    {
        //弹出登陆失败的错误消息对话框
        int res = QMessageBox::critical(this,"错误","账号和密码不匹配,是否重新登陆",QMessageBox::Yes
                              | QMessageBox::No);
        //如果点击yes则重置密码
        if(res == QMessageBox::Yes)
        {
            ui->lineEdit_2->clear();
        }
        else
        {
            this->close();
        }
    }
}


运行测试结果:

Xmind知识点:


http://www.kler.cn/a/457608.html

相关文章:

  • 豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery
  • 2025.01.02(数据库)
  • Kafka 快速实战及基本原理详解解析-01
  • 数字货币支付系统开发搭建:构建未来的区块链支付生态
  • Swift Combine 学习(四):操作符 Operator
  • 低代码引擎插件开发:开启开发的便捷与创新之路
  • 【机器学习】深度学习(DNN)
  • 【JavaEE进阶】Spring传递请求参数
  • 总结TCP/IP四层模型
  • 机器学习基础-神经网络与深度学习
  • ID读卡器UDP协议Delphi7小程序开发
  • Java编程题_面向对象和常用API01_B级
  • 电动汽车用永磁同步电机控制系统研究与设计
  • Streamlining QA with Automated Testing for 3D Models
  • Vue计算属性、侦听器
  • 基于AI IDE 打造快速化的游戏LUA脚本的生成系统
  • 自学记录鸿蒙API 13:实现多目标识别Object Detection
  • 学习测试day1
  • ClickHouse 日常操作记录
  • 跟着问题学18——大模型基础transformer详解(2)多头自注意力机制
  • Linux 使用入门指南
  • 如何在 Spring Boot 中配置数据库?
  • 【bluedroid】A2dp Source播放流程源码分析(3)
  • C#控件开发2—流动管道
  • 小猫咪抽奖系统源码1.11(有卡密功能)
  • 【潜意识Java】探寻Java子类构造器的神秘面纱与独特魅力,深度学习子类构造器特点