12.11作业

1.

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

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

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

要求:基于属性版和基于静态成员函数版至少各用一个

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
signals:void my_jump();private slots:void on_pushButton_clicked();void on_pushButton2_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

wdiget.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);//去掉窗口其他部分this->setWindowIcon(QIcon(":/Logo/Logo/qq.png"));}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//静态成员函数版本//判断用户名和密码输入是否正确if(ui->userEdit->text() == "admin" && ui->passwordEdit->text() == "123456"){//跳出信息对话框,设置Ok按钮int ret = QMessageBox::information(this,"信息对话框","登陆成功",QMessageBox::Ok);//如果点击Ok,就触发跳转页面事件,并关闭登录页面if(ret == QMessageBox::Ok){emit my_jump();this->close();}}else{//当用户名或者密码输入错误时,跳出问题对话框,设置Yes和No按钮int ret = QMessageBox::critical(this,"错误对话框","账号和密码不匹配,是否重新登陆",QMessageBox::Yes | QMessageBox::No);//如果点击Yes,清空密码if(ret == QMessageBox::Yes){ui->passwordEdit->clear();}//如果点击No,关闭登录页面else if(ret == QMessageBox::No){this->close();}}/*===============基于属性版本======================*///判断用户名和密码输入是否正确
//    if(ui->userEdit->text() == "admin" && ui->passwordEdit->text() == "123456")
//    {
//        //跳出信息对话框,设置Ok按钮
//        QMessageBox msg(QMessageBox::Information,"信息对话框","登陆成功",QMessageBox::Ok);
//        //如果点击Ok,就触发跳转页面事件,并关闭登录页面
//        int ret = msg.exec();
//        if(ret == QMessageBox::Ok)
//        {
//            emit my_jump();
//            this->close();
//        }
//    }
//    else
//    {
//        //当用户名或者密码输入错误时,跳出问题对话框,设置Yes和No按钮
//        QMessageBox msg(QMessageBox::Critical,"错误对话框","账号和密码不匹配,是否重新登陆",
//                     QMessageBox::Yes | QMessageBox::No);
//        int ret = msg.exec();
//        //如果点击Yes,清空密码
//        if(ret == QMessageBox::Yes)
//        {
//            ui->passwordEdit->clear();
//        }
//        //如果点击No,关闭登录页面
//        else if(ret == QMessageBox::No)
//        {
//            this->close();
//        }
//    }
}void Widget::on_pushButton2_clicked()
{//静态成员函数版本//当点击取消按钮,跳出问题对话框,设置Yes和No按钮int ret = QMessageBox::question(this,"问题对话框","您是否确定要退出登录",QMessageBox::Yes | QMessageBox::No);//点击Yes,关闭登陆页面if(ret == QMessageBox::Yes){this->close();}/*===============基于属性版本======================*///当点击取消按钮,跳出问题对话框,设置Yes和No按钮
//    QMessageBox msg(QMessageBox::Question,"问题对话框","您是否确定要退出登录",
//                          QMessageBox::Yes | QMessageBox::No);
//    //点击Yes,关闭登陆页面
//    int ret = msg.exec();
//    if(ret == QMessageBox::Yes)
//    {
//        this->close();
//    }
}

main.cpp

#include "widget.h"
#include "second.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Second s;QObject::connect(&w,&Widget::my_jump,&s,&Second::jump_slot);return a.exec();
}

思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/266626.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux基础知识]页表

文章目录 1.页表 环境变量2.进程 1.页表 环境变量 一个分页存储管理系统中&#xff0c;地址长度为 32 位&#xff0c;其中页号占 8 位&#xff0c;则页表长度是 页号即页表项的序号&#xff0c;总共占8个二进制位&#xff0c;意味着页表项的个数就是2^8 在CPU和物理内存之间进行…

计算机病毒判定专家系统原理与设计《文字提取人工修正》

内容源于网络。网络上流转的版本实在是不易阅读&#xff0c; 又不忍神作被糟蹋故稍作整理&#xff0c;对于内容仍然有识别不准的地方&#xff0c;网友可留言&#xff0c;我跟进修改。 雷 军 &#xff08;武汉大学计算机系&#xff0c;430072) 摘要: 本文详细地描述了…

第17章:随堂复习与企业真题(反射机制)

第17章&#xff1a;随堂复习与企业真题&#xff08;反射机制&#xff09; 一、随堂复习 1. 反射的概述&#xff08;熟悉&#xff09; Java给我们提供了一套API&#xff0c;使用这套API我们可以在运行时动态的获取指定对象所属的类&#xff0c;创建运行时类的对象&#xff0c;…

SpringBoot集成系列--RabbitMQ

文章目录 一、代码1、添加依赖2、配置RabbitMQ连接3、RabbitMQ配置4、创建生产者5、创建消费者6、测试 二、遇到的问题1、Channel shutdown2、收不到信息3、安装RabbitMQ&#xff0c;无法访问控制台访问 一、代码 1、添加依赖 在pom.xml文件中添加RabbitMQ的相关依赖 <de…

排序-选择排序与堆排序

文章目录 一、选择排序二、堆排序三、时间复杂度四、稳定性 一、选择排序 思想&#xff1a; 将数组第一个元素作为min&#xff0c;然后进行遍历与其他元素对比&#xff0c;找到比min小的数就进行交换&#xff0c;直到最后一个元素就停止&#xff0c;然后再将第二个元素min&…

ES-分析器

分析器 两种常用的英语分析器 1 测试工具 #可以通过这个来测试分析器 实际生产环境中我们肯定是配置在索引中来工作 GET _analyze {"text": "My Moms Son is an excellent teacher","analyzer": "english" }2 实际效果 比如我们有下…

鸿蒙原生应用再添新丁!同花顺入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;同花顺入局鸿蒙 来自 HarmonyOS 微博12月11日消息&#xff0c;同花顺已完成#鸿蒙原生应用#beta版本&#xff0c;并正在进行全量版本开发&#xff0c;进一步丰富了#鸿蒙原生应用#的覆盖领域。同花顺作为股民和券商首选的一站式金融理财服务平台…

利用贝叶斯超参数优化,提升模型效果更科学(附Python代码)

超参数优化在大多数机器学习流水线中已成为必不可少的一步&#xff0c;而贝叶斯优化则是最为广为人知的一种“学习”超参数优化方法。 超参数优化的任务旨在帮助选择学习算法中成本&#xff08;或目标&#xff09;函数的一组最佳参数。这些参数可以是数据驱动的&#xff08;例…

聚首引领行业风潮!聚首品牌联动资源价值平台发布会正式启航

2023年12月10日&#xff0c;由杭州建筑装饰学会、浙江聚首联优材料科技有限公司主办&#xff0c;天尚设计集团、公和设计集团、铭扬工程设计集团、地标设计集团、上宸工程设计集团、华坤建筑设计院、广厦建筑设计研究院、上海传承博华建筑规划设计院、航冠工程设计院、浙江鸿能…

【小白专用】MySQL查询数据库所有表名及表结构其注释

一、先了解下INFORMATION_SCHEMA 1、在MySQL中&#xff0c;把INFORMATION_SCHEMA看作是一个数据库&#xff0c;确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名&#xff0c;数据库的表&#xff0c;表栏的数据类型与访问权 限等。在INF…

通过Jmeter压测存储过程

一、存储过程准备&#xff1a; 1、建立一个空表&#xff1a; 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程&#xff1a; CREATE OR REPLACE PROCEDURE insert_test_data(n IN NUMBER) ASBEGIN--EXECUTE IMMEDIATE trunca…

【docker三】Docker镜像的创建方法

目录 一、Docker镜像&#xff1a; 1、 镜像的概念 2、docker的创建镜像方式&#xff1a; 1.1、基于已有镜像进行创建&#xff1a; 1.2、基于模版创建&#xff1a; 1.3、基于dockerfile创建&#xff1a; 二、Dockerfile概述 1、Dockerfile概念&#xff1a; 2、dockerfile…