10.8每日作业

news2024/10/8 21:43:08

 

当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录

当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面

当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关闭登录界面

要求:静态成员函数版本和对象版本各至少实现一个

main.c

#include "widget.h"
#include"second.h"             //第二个界面的头文件


#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;                       //实例化的第一个界面
    w.show();

    Second s;                        //实例化第二个界面

    //将第一个界面的跳转信号与第二个界面的槽函数进行连接
    //s.connect(&w, &Widget::jump, &s, &Second::jump_slot);
    //w.connect(&w, &Widget::jump, &s, &Second::jump_slot);
    QObject::connect(&w, &Widget::jump, &s, &Second::jump_slot);

    return a.exec();
}

widget.cpp 

#include "widget.h"
#include "ui_widget.h"
#include<QMessageBox>            //消息对话框类
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->resize(900,800);                        //重置界面尺寸

    this->setWindowTitle("登录");                 //设置界面名称为:登录
    this->setWindowIcon(QIcon("C:\\Users\\86183\\Desktop\\icon_dj40cz9xze4\\pictrue\\qq.png"));
    //设置界面图标

    //QLabel *
    lab1 = new QLabel(this);              //定义文本
    lab1->resize(300,200);                        //设置文本框大小
    lab1->move(300,200);                          //移动文本位置
    lab1->setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\icon_dj40cz9xze4\\qq.png"));
    //设置文本为图片
    lab1->setScaledContents(true);                //设置图片自动缩放

    //QLabel *
    lab2 = new QLabel("账号:",this);      //定义文本
    lab2->resize(50,40);                          //重置文本框大小
    lab2->move(lab1->x(),lab1->y()+lab1->height()+10);  //移动文本位置

    //QLabel *
    lab3 = new QLabel("密码:",this);       //定义文本
    lab3->resize(50,40);                          //重置文本框大小
    lab3->move(lab2->x(),lab2->y()+lab2->height());    //移动文本位置

    //QLineEdit *
    edit1 = new QLineEdit(this);
    edit1->resize(250,30);                      //重置尺寸
    edit1->move(lab2->x()+lab2->width(),lab2->y());
    edit1->setStyleSheet("color:black");        //设置字体颜色
    edit1->setAlignment(Qt::AlignCenter);       //设置文本对齐方式:居中
    edit1->setPlaceholderText("输入QQ账号");     //设置占位文本

    //QLineEdit *
    edit2 = new QLineEdit(this);
    edit2->resize(250,30);                      //重置尺寸
    edit2->move(lab3->x()+lab3->width(),lab3->y());
    edit2->setStyleSheet("color:black");         //设置字体颜色
    edit2->setAlignment(Qt::AlignCenter);       //设置文本对齐方式:居中
    edit2->setEchoMode(QLineEdit::Password);    //设置密文模式
    edit2->setPlaceholderText("输入QQ密码");     //设置占位文本

    //QPushButton *
    btn1 = new QPushButton("登录",this);     //定义按键
    btn1->resize(110,40);                                //重置按键大小
    btn1->move(lab3->x(),lab3->y()+lab3->height());      //移动按键位置

    //QPushButton *
    btn2 = new QPushButton("取消",this);     //定义按键
    btn2->resize(110,40);                                //重置按键大小
    btn2->move(btn1->x()+btn1->width()+80,btn1->y());      //移动按键位置

    /*
当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录
当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面
当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关闭登录界面
     */


    connect(btn1, &QPushButton::clicked, this, &Widget::my_signal_1_slot);
    connect(btn2, &QPushButton::clicked, this, &Widget::my_signal_2_slot);

}


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


void Widget::my_signal_1_slot()
{
    if(edit1->text() == "sc"&& edit2->text() == "123" )
    {
        QMessageBox box(QMessageBox::Question,
                        "结果",
                        "登录成功",
                        QMessageBox::Yes,
                        this);

        box.setButtonText(QMessageBox::Yes, "确定");
        box.setDefaultButton(QMessageBox::No);

        int btn = box.exec();

        if(btn == QMessageBox::Yes)
        {
            this->close();

            emit jump();
        }
    }
    else
    {
        QMessageBox box(QMessageBox::Question,
                        "结果",
                        "账号与密码不匹配,是否重新登录",
                        QMessageBox::Yes|QMessageBox::No,
                        this);

        int btn = box.exec();

        if(btn == QMessageBox::Yes)
        {
            edit2->clear();
        }
        else if(btn == QMessageBox::No)
        {
            this->close();
        }
    }


}

void Widget::my_signal_2_slot()
{
        int btn = QMessageBox::warning(this,
                             "警告",
                             "是否要确定退出登录",
                             QMessageBox::Yes|QMessageBox::No,
                             QMessageBox::No);



        if(btn == QMessageBox::Yes)
        {
            this->close();
        }
        else if(btn==QMessageBox::No)
        {

        }
}

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

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

相关文章

热网无线监测系统 GetMenuItem 接口存在SQL注入漏洞

漏洞描述 热网无线监测系统 /DataSrvs/UCCGSrv.asmx/GetMenuItem 接口处存在SQL注入漏洞&#xff0c;未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息&#xff08;例如&#xff0c;管理员后台密码、站点的用户个人信息&#xff09;之外&#xff0c;甚至…

Hydra 新手友好使用教程

1. Hydra 简介 Hydra是一款强大的网络登录暴力破解工具&#xff0c;支持多种协议。本教程将帮助新手快速上手&#xff0c;掌握常用指令和操作。 2. 基本语法 hydra [参数] 目标 3. 核心参数详解 3.1 用户名和密码设置 单个用户名: -l LOGIN 例&#xff1a;-l admin 用户名…

【LeetCode】动态规划—115. 不同的子序列(附完整Python/C++代码)

动态规划—115. 不同的子序列 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释1. 变量定义:2. 初始化:3. 动态规划状态转…

高级算法设计与分析 学习笔记11 动态规划

要讲动态规划&#xff0c;当然少不了斐波拉及数列&#xff1a; 可以看到&#xff0c;动态规划效率高的秘诀就在于有记忆&#xff0c;不用做重复的事。 矩阵列乘法&#xff1a; 可以看到&#xff0c;只要找到了一个恰到好处的计算顺序&#xff08;注意矩阵乘法只有结合律没有交换…

HT8513 内置自适应同步升压和防破音功能的6.5W D类及AB类音频功率放大器

1、特征 防削顶失真功能(防破音,Anti-Clipping Function, ACF) 免滤波器数字调制&#xff0c;直接驱动扬声器 输出功率 3W (VBAT3.3V, RL-4Ω, THDN<1%, 20-20kHz full band) 2.0W (VBAT3.3V, RL8Ω,THDN<1%, 20-20kHz full band) 6.5W (VBAT4.2V, RL2Ω, THDN10%,f1kHz…

SQL第14课挑战题

1. 将两个select语句结合起来&#xff0c;以便从OrderItems表中检索产品ID(prod_id)和quantity。其中&#xff0c;一个select语句过滤数量为100的行&#xff0c;另一个select语句过滤ID以BNBG开头的产品。按产品ID对结果进行排序。 2. 重新第一题&#xff0c;仅使用单个select语…

2021浙江省赛 F I

F - Fair Distribution 题意 给定两个a,b,每次操作可以使b或者a--,为使得b是a的倍数,最小操作次数是多少 思路 朴素版本:枚举a一直到1为止,每一次找到离b最近的a的倍数(>b),然后每次更新一下最小操作次数是多少,时间复杂度O(n*T) 优化版本:每一个a在找到:找到离b最近的…

图像增强论文精读笔记-Low-Light Image Enhancement via a Deep Hybrid Network

1. 论文基本信息 论文标题&#xff1a;Low-Light Image Enhancement via a Deep Hybrid Network 作者&#xff1a;Wenqi Ren等 发表时间和期刊&#xff1a;2019&#xff1b;IEEE TIP 论文链接&#xff1a;https://ieeexplore.ieee.org/document/8692732 2. 研究背景和动机 …

Linux防火墙-案例(二)snatdnat

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令&#xff0c;我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…

YOLOv11改进 ,YOLOv11改进主干网络为MobileNetV3,助力涨点

YOLOv11改进介绍 YOLOv11 跟 YOLOv8 结构差不多相似,只是作者在 YOLOv8 基础上进行了改进,我感觉 YOLOv11 训练速度更快,map和精度应该比 YOLOv8 高一些,所以我会把 YOLOv11 改进也写在本专栏里面。YOLOv11 改进,可以看往期 YOLOv8 改进主干网络教程,原理都是一样的,这…

Qt(10.8)

作业&#xff1a;完善登录界面 源文件 #include "widget.h" #include "ui_widget.h" #include<QDebug> #include<QLabel> #include<QMessageBox> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setu…

MySQL连接查询:自连接

先看我的表结构 emp表 自连接也就是把一个表看作是两个作用的表就好&#xff0c;也就是说我把emp看作员工表&#xff0c;也看做领导表 自连接 基本语法 select 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件;例子1&#xff1a;查询员工 及其 所属领导的名字 select a.n…

【stm32】寄存器(stm32技术手册下载链接)

1、资料下载 RM0008_STM32F101xx,STM32F102xx,STM32F103xx,STM32F105xx和STM32F107xx单片机参考手册 | STMCU中文官网 2、代码 设置PB7 //设置PB7 #define SDA_IN() {GPIOB->CRL&0X0FFFFFFF;GPIOB->CRL|(u32)8<<28;} #define SDA_OUT() {GPIOB->…

wsl中配置cuda,pytorch,cudnn,vscode

参考链接 查看python版本 从 NVIDIA 的官网上下载 CUDA 的 pin 文件。这个文件确保 CUDA 仓库的优先级更高&#xff0c;防止与其他仓库发生冲突。 wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin将下载的 cuda-wsl-u…

Python 卸载所有的包

Python 卸载所有的包 引言正文 引言 可能很少有小伙伴会遇到这个问题&#xff0c;当我们错误安装了一些包后&#xff0c;由于包之间有相互关联&#xff0c;导致一些已经安装的包无法使用&#xff0c;而由于我们已经安装了很多包&#xff0c;它们的名字我们并不完全知道&#x…

点餐小程序实战教程17角色管理

目录 1 创建API2 创建全局变量3 加载角色4 引导用户注册总结 小程序中如果有多重角色人员使用的&#xff0c;通常需要根据用户的角色来进行页面跳转。我们点餐小程序也是区分不同的用户&#xff0c;有顾客和员工的区分&#xff0c;本篇我们讲解一下如何利用API来加载用户的角色…

移除元素(算法题分享)

移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以下操作&#xf…

使用欧拉安装ceph分布式存储,ceph的集群安装、添加主机集群和删除主机、添加osd硬盘和手动添加硬盘为osd和移除osd。

1.ceph安装 1.1 首先准备3台机子&#xff0c;配置ip&#xff0c;给每台机子添加3块硬盘,设置主机名为ceph01、ceph02、ceph03。 192.168.10.20ceph01192.168.10.21ceph02192.168.10.22ceph03 1.2 三台机子关闭防火墙&#xff0c;setenforce 0&#xff0c;添加hosts解析、配置…

【数据结构 | PTA】表

文章目录 7-1 重排链表7-2 链表去重7-3 两个有序链表序列的合并7-4 两个有序链表序列的交集 7-1 重排链表 输入格式&#xff1a; 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数&#xff0c;即正整数N (≤105)。结点的地址是5位非负整数&#xff…

OgreNext高级材质中增加线宽,点大小,虚线模式绘制支持

修改Ogre高级材质系统,增加线宽,点大小,虚线模式,虚线参数的支持,效果如下: 需要修改的代码文件如下: 修改如下 代码文本: //范围[0.2 - 51] 0.2 * [0,255];Ogre::uint8 mLineWidth;//范围[0.5 - 127.5] 0.5 * [0, 255];Ogre::uint8 mPointSize;//虚线标记Ogre::ui…