QTday03(信号与槽、对话框)

news2024/11/16 15:56:41

今日任务:

1.

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

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

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

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

要求:尽量每行代码都有注释

2.思维导图

文件目录:

代码:

page2.h:

#ifndef PAGE2_H
#define PAGE2_H

#include <QWidget>
#include <QMovie>


namespace Ui {
class Page2;
}

class Page2 : public QWidget
{
    Q_OBJECT

public:
    explicit Page2(QWidget *parent = nullptr);
    ~Page2();
public slots:
    void login_slot();

private:
    Ui::Page2 *ui;
};

#endif // PAGE2_H

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMovie>
#include <QMessageBox>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    void loginButton_slot();

signals:
    void login_signal();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

main.cpp:

#include "widget.h"
#include "page2.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    Page2 p2;
    QObject::connect(&w,&Widget::login_signal,&p2,&Page2::login_slot);
    return a.exec();
}

page2.cpp:

#include "page2.h"
#include "ui_page2.h"

Page2::Page2(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Page2)
{
    ui->setupUi(this);
    QMovie *movie = new QMovie(":/111/cai.gif");
    ui->label->setMovie(movie);
    ui->label->setScaledContents(true);
    movie->start();
}

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

void Page2::login_slot()
{
    this->show();
}

widget.cpp:

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setFixedSize(560,430);
    this->setStyleSheet("background-color:#faf7ec");
    this->setWindowFlag(Qt::FramelessWindowHint);//无边框
    QMovie *movie = new QMovie(":/111/cai.gif");
    ui->backLabel->setMovie(movie);
    ui->backLabel->setScaledContents(true);
    movie->start();

    ui->closeButton->setStyleSheet("border-image:url(:/111/basketball.png)");


    ui->avatorLabel->resize(60,60);
    ui->avatorLabel->setStyleSheet("border-image:url(:/111/user.png);border-radius:30px");

    ui->accountLabel->setPixmap(QPixmap(":/111/account.jpg"));
    //ui->accountLabel->resize(40,40);
    ui->accountLabel->setScaledContents(true);

    ui->passwdLabel->setPixmap(QPixmap(":/111/passwd.jpg"));
    //ui->passwdLabel->resize(40,40);
    ui->passwdLabel->setScaledContents(true);

    ui->accoountLine->setPlaceholderText("账号");
    ui->passwdLine->setPlaceholderText("密码");
    ui->passwdLine->setEchoMode(QLineEdit::Password);

    ui->loginLabel->setPixmap(QPixmap(":/111/2.png"));
    ui->loginLabel->setScaledContents(true);

    ui->loginButton->setStyleSheet("background-color:#409EFF;border-radius:5px");

    connect(ui->closeButton,SIGNAL(clicked()),this,SLOT(close()));

    connect(ui->loginButton,&QPushButton::clicked,this,&Widget::loginButton_slot);

}

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


void Widget::loginButton_slot()
{
    if(ui->accoountLine->text()=="admin"&&ui->passwdLine->text()=="123456"){
        qDebug() << "登录成功" <<endl;
        QMessageBox::information(this,"提示","登录成功",QMessageBox::Ok);
        this->close();
        //开启新窗口
        emit login_signal();

    }else{
        qDebug() << "账号或者密码错误" <<endl;
        int res=QMessageBox::information(this,"提示","账号或者密码错误,是否继续登录",QMessageBox::Ok|QMessageBox::No);
        if(res==QMessageBox::Ok){
            ui->passwdLine->setText("");
        }else{
            this->close();
        }

    }
}

        运行结果:

今日思维导图:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法通关村第一关-链表黄金挑战环形链表问题

环形链表 描述 : 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 LeetCode 141.环形链表 : 141. 环形链表 牛客 BM6 判断链表中是否有 : 分析 : 方法一…

2023年下半年软考考试重磅消息

重磅消息一&#xff1a;科目连考&#xff0c;分批考试 2023年下半年软考考试&#xff0c;采取科目连考、分批次考试的方式。 什么是科目连考&#xff1f; 连考就是第一个科目作答结束交卷完成后&#xff0c;自动进入第二个科目的考试&#xff0c;第一个科目剩余的时长可为第二…

2023年10月【考试战报】|ORACLE OCP 19C考试通过

【考试战报】ORACLE OCP 19C考试通过_oracle19c ocm认证_厦门微思网络的博客-CSDN博客 自OCP认证进入中国以来&#xff0c;越来越被大多数DBA所认可&#xff0c;也越来越被企业所重视&#xff0c;90%以上DBA深造&#xff0c;都会选择OCP认证。Oracle开始在中国挂起新一轮的OCP认…

jmeter集成kafka测试

Kafka的使用 查看kafka的topic ./kafka-topics --bootstrap-server 10.1.9.84:9092 --list 查看topic信息 ./kafka-topics --bootstrap-server 10.1.9.84:9092 --describe --topic topic_example_1 创建topic 创建topic名为test&#xff0c;分区数为8&#xff0c;副本数为…

性能监控软件是什么?有哪些优势?

在现代科技驱动的世界中&#xff0c;计算机系统的性能对于企业和个人用户都至关重要。性能监控软件是一种不可或缺的工具&#xff0c;可以帮助我们实时跟踪、分析和优化系统的性能。本文将介绍性能监控软件的概念、其重要性以及如何选择和使用这些工具来提高系统效率。 一、性能…

气膜建筑是真正的节能环保建筑

气膜结构建筑是用特殊的PVC膜材做外壳&#xff0c;配备一套智能化的机电设备在智能环保气膜内部提供空气的正压&#xff0c;即依靠内外气压差来支撑整个气膜结构受力的建筑。智能环保气膜内部无需任何框架或梁柱支撑&#xff0c;没有受弯、受扭和受压的构件&#xff0c;跨度可以…

【Javascript保姆级教程】运算符

文章目录 前言一、运算符是什么二、赋值运算符2.1 如何使用赋值运算符2.2 示例代码12.3 示例代码2 三、自增运算符3.1 运算符3.2 示例代码13.3 示例代码2 四、比较运算符4.1 常见的运算符4.2 如何使用4.3 示例代码14.4 示例代码2 五、逻辑运算符逻辑运算符列举 六、运算符优先级…

微信小程序进阶——会议OA其他界面

目录 一、自定义tabs组件应用 1.1 创建自定义组件 1.1.1 新建自定义组件存放目录components 1.1.2 工具检查报错解决 1.1.3 编写组件模板 1.1.3 定义组件模板属性 1.1.4 加入组件样式 1.2 使用自定义组件 1.2.1 引用声明 1.2.2 组件传参 二、其他界面的布局 2.1 会…

半球体容器漏水体积微分问题

问题&#xff1a;半球体的容器中盛满水&#xff0c;容器底部有一个小孔&#xff0c;水从小孔流出。给出水体积的变化量 V 随水面高度 h 变化的微分关系式。 在微小的时间间隔 [ t , t d t ] [t, t\mathrm{d}t] [t,tdt] 内&#xff0c;水面高度由 h h h 降至 h d h , ( d h…

官媒代运营:如何将内容营销做到深入人心

生活中&#xff0c;信息传递和有效的沟通是我们与世界互动的重要方式&#xff0c;而语言是这种互动的关键媒介。然而&#xff0c;在营销界&#xff0c;我们已经迈出了更深一步&#xff0c;将语言与内容相结合&#xff0c;以创造内容营销这一强大的战略工具。内容&#xff0c;作…

35岁失业程序员的在线简历制作工具

失业在家&#xff0c;实在是难熬&#xff0c;人过了35面试的机会很少&#xff0c;而且大多数都是外包&#xff0c;可能大环境也是一个原因吧&#xff0c;这不也没闲着&#xff0c;写了个在线制作简历的工具&#xff0c;帮助大家更好的找工作吧&#xff0c; 废话不多说先看看效…

基于ESP32-WROOM-32的USB转WIFI模块设计

一、ESP32-WROOM-32简介&#xff1a; ESP32-WROOM-32是一个功能强大的通用Wi-FiBTBLE MCU模块&#xff0c;针对多种应用&#xff0c;从低功耗传感器网络到最苛刻的任务&#xff0c;如语音编码、音乐流和MP3解码。该模块的核心是ESP32-D0WDQ6芯片*。嵌入式芯片的设计是可扩展的和…

团队计划管理软件大比拼:五个顶级工具推荐和对比

团队计划管理软件在如今的商业环境中变得越来越重要。有效的团队协作和任务管理对于提高生产力、加强沟通以及满足项目要求至关重要。然而&#xff0c;市场上有数以百计的团队计划管理软件可供选择&#xff0c;这使得选择最适合您团队的软件成为一项挑战。 在本文中&#xff0…

黑白二维码不好看,那么快学习改色的方法吧

现在经常会看到很多的二维码不是黑白图案&#xff0c;可以是其他纯色或者渐变色等样式的&#xff0c;那么怎么将黑白二维码改成其他鲜艳好看的颜色呢&#xff1f;一般想要修改普通样式的二维码可以用二维码美化生成器来处理&#xff0c;只需要上传二维码图片&#xff0c;就可以…

DDoS如何防范?防御DDoS攻击的几大有效方法

伴随互联网的普及和数字化世界的迅猛发展&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击已然成为当今网络世界的威胁之一。根据Cybersecurity Ventures的数据&#xff0c;每39秒就会发生一次漏洞&#xff0c;每14秒就会发生一次勒索软件攻击。仅在2022年&#xf…

Ajax 笔记/练习

Ajax 异步JavaScript和XML 作用 实现 HTML 在不整体刷新的情况下&#xff0c;通过后台服务器&#xff0c;请求数据并局部更新页面内容 操作流程 Ajax 使用 XMLHttpRequest 通过new 关键字可以创建XMLHttpRequest() 对象。 var req new XMLHttpRequest();方法和属性说明req.…

Kubernetes技术与架构-Ingress

Ingress是一个流量网关&#xff0c;其根据配置的URI路径路由规则&#xff0c;为运行在Kubernetes集群中的Service分发流量&#xff0c;从系统架构设计的角度看&#xff0c;Ingress位于Service的上层&#xff0c;本文主要描述Ingress的基本使用方式。 如上所示&#xff0c;clien…

Oracle数据库 ORA-28001: the password has expired解决方法

今天在用dbvisualizer登录数据库的时候&#xff0c;报了the password has expired的错误&#xff0c;于是上网查了一下原因&#xff0c;是因为数据库密码过期了&#xff0c;因为默认的是180天。 解决方法&#xff1a; 1&#xff09;用系统用户登录 #在cmd终端输入&#xff1…

跨境电子商城源代码定制网站搭建(商品采集,多货币,多语言)

欢迎来到全新的跨境电子商城源代码定制网站搭建!这是一个集商品采集、多币种和多语言于一身的创新平台&#xff0c;为您的跨境电商事业提供了前所未有的便利和机会! 一、精选全球商品&#xff0c;一站式采集 在跨境电子商务的时代&#xff0c;我们深谙选择高质量商品的重要性。…

AI智慧安防智能监控平台如何做到健身房智能视频监控?

随着大家对健身的重视&#xff0c;健身房也开始遍地开花&#xff0c;健身房的兴起是必然的&#xff0c;但是健身房的管理不容疏忽&#xff0c;通过EasyCVR智能视频监控系统&#xff0c;则可以解决监管不足的问题。 1、安全摄像头布局 根据健身房的大小和布局&#xff0c;合理规…