C++240618

1> 思维导图

2>

完善对话框,点击登录对话框,

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

跳转到其他界面

如果账号和密码不匹配,弹出**错误对话框**,给出信息"**账号和密码不匹配,是否重新登录**",并提供 **两个按钮Yes|No**,

用户**点击Yes后**,**清除密码框** 中的内容,**继续**让用户进行登录,

如果用户**点击No按钮**,则直接**关闭登录界面**

如果用户**点击取消按钮**,则弹出一个**问题对话框**,给出信息"**您是否确定要退出登录?** ",并给出**两个按钮Yes|No**,

用户**点击Yes后**,关闭登录界面,用户**点击No后**,关闭对话框,继续执行登录功能

要求:(基于属性版、静态成员函数都使用)实现对话框的弹出

3> 使用定时器事件 实现闹钟

mywidget.cpp文件

cpp 复制代码
#include "mywidget.h"
#include "ui_mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    //
    this->setWindowFlag(Qt::FramelessWindowHint);

    //
    this->setAttribute(Qt::WA_TranslucentBackground);
}

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


void MyWidget::on_pushButton_2_clicked()
{
    this->close();
}

void MyWidget::on_pushButton_clicked()
{
    if(ui->lineEdit->text()=="admin" && ui->lineEdit_2->text()=="123456"){
        //弹出一个信息对话框

        //使用 静态成员 函数实现
        int ret = QMessageBox::information(this,  //父组件
                                           "",  //标题
                                           "登录成功",  //文件
                                           QMessageBox::Ok
                                           );
        //根据函数的返回值,判断选中的按钮
        if(ret == QMessageBox::Ok){
            //
            this->close();
            //
            emit my_jump();
        }
    }else{
        //弹出警告对话框

        //1.使用QMessageBox 实例化一个对象 有参构造
        QMessageBox msg(QMessageBox::Critical,  //图标
                        "警告",  //标题
                        "账号和密码不匹配,是否重新登录",  //文本
                        QMessageBox::Yes | QMessageBox::No,  //按钮
                        this //指定父组件
                        );
        //2.调用 exec() 弹出对话框
        int ret = msg.exec();

        //3.根据用户的选择,执行不同的功能
        if(ret == QMessageBox::Yes){
            ui->lineEdit->clear();
            ui->lineEdit_2->clear();
        }else{
            this->close();
        }
    }
}

void MyWidget::on_cancelBtn_clicked()
{
    //弹出一个信息对话框

    //使用 静态成员 函数实现
    int ret = QMessageBox::information(this,  //父组件
                                       "",  //标题
                                       "您是否确定要退出登录?",  //文件
                                       QMessageBox::Yes | QMessageBox::No
                                       );
    //根据函数的返回值,判断选中的按钮
    if(ret == QMessageBox::Yes){
        this->close();
    }else{
        ui->lineEdit->clear();
        ui->lineEdit_2->clear();
    }
}

思源笔记

相关推荐
誰能久伴不乏1 小时前
桌面客户端的运行日志系统:SQLite 分块 + 独立写线程 + 文本降级
数据库·c++·qt·架构·sqlite
2601_966949656 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨8 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪9 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风9 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
2601_9628857211 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
choumin11 小时前
C++中万能引用与std::forward的作用和用法
c++·万能引用·std forward
Wang's Blog11 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
下一站春风里12 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
天外飞雨道沧桑13 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程