QT-day2

news2024/11/25 3:44:41

完善登录框

点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。

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

点击取消按钮后,弹出问题对话框,询问是否确定要退出登录,给出两个按钮,yes|no,点击yes,则直接关闭整个登录界面,如果点击no则进行进行登录

要求:消息对话框,对象版和静态成员函数版至少各实现一个

加载资源文件

mywnd.h

#ifndef MYWND_H
#define MYWND_H

#include <QWidget>
#include <QMessageBox>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QDebug>

class MyWnd : public QWidget
{
    Q_OBJECT

signals:
    void my_signal();
    void  jumpsignal();

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

private slots:
    void  loginbton1_clicked();
    void  cancelbton2_clicked();

private:
    QPushButton *bton1;
    QPushButton *bton2;
    QLineEdit *edit1;
    QLineEdit *edit2;
    QLabel *lab1;
    QLabel *lab2;
    QLabel *lab3;


};
#endif // MYWND_H

second.h

#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class Second;
}

class Second : public QWidget
{
    Q_OBJECT

public:
    void  jump_slot();

public:
    explicit Second(QWidget *parent = nullptr);
    ~Second();

private:
    Ui::Second *ui;
};

#endif // SECOND_H

main.cpp

#include "mywnd.h"
#include "second.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWnd w;
    w.show();
    Second s;
    QObject::connect(&w,&MyWnd::jumpsignal,&s,&Second::jump_slot);
    return a.exec();
}

mywnd.cpp

#include "mywnd.h"
#include <iostream>
#include <QDebug>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>

MyWnd::MyWnd(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(400,350);
    this->setWindowTitle("Widget");
    this->setWindowIcon(QIcon(":/icon/wodepeizhenshi.png"));
    QLabel *lab1 = new QLabel(this);
    lab1->resize(400,150);
    lab1->setPixmap(QPixmap(":/icon/logo.png"));
    lab1->setScaledContents(true);

    QLabel *lab2 = new QLabel(this);
    lab2->resize(60,55);
    lab2->move(75,160);
    lab2->setPixmap(QPixmap(":/icon/userName.jpg"));
    lab2->setScaledContents(true);

    QLabel *lab3 = new QLabel(this);
    lab3->resize(60,55);
    lab3->move(lab2->x(),lab2->y()+65);
    lab3->setPixmap(QPixmap(":/icon/passwd.jpg"));
    lab3->setScaledContents(true);

    QLineEdit *edit1 = new QLineEdit("admin",this);
    edit1->resize(200,55);
    edit1->move(lab2->x()+65,lab2->y());

    QLineEdit *edit2 = new QLineEdit("123456",this);
    edit2->resize(200,55);
    edit2->move(lab3->x()+65,lab3->y());
    edit2->setEchoMode(QLineEdit::Password);

    QPushButton *bton1 = new QPushButton(QIcon(":/icon/login.png"),"登录",this);
    bton1->resize(90,55);
    bton1->move(edit2->x()+20,edit2->y()+65);

    QPushButton *bton2 = new QPushButton(QIcon(":/icon/cancel.png"),"取消",this);
    bton2->resize(90,55);
    bton2->move(bton1->x()+105,bton1->y());

    connect(bton1,&QPushButton::clicked,this,&MyWnd::loginbton1_clicked);
    connect(bton2,&QPushButton::clicked,this,&MyWnd::cancelbton2_clicked);

}

void  MyWnd::loginbton1_clicked()
{
    if(edit1->text()=="admin"&&edit2->text()=="123456"){
        QMessageBox sucbox(QMessageBox::Information,
                           "登录",
                           "登录成功",
                           QMessageBox::Ok,
                           this);
        int ret = sucbox.exec();
        if(ret == QMessageBox::Ok){
            this->close();
            emit jumpsignal();
        }
    }else{
        QMessageBox errbox(QMessageBox::NoIcon,
                           "登录",
                           "账号密码不匹配,是否重新登录",
                           QMessageBox::Ok|QMessageBox::Cancel,
                           this);
        int ret = errbox.exec();
        if(ret == QMessageBox::Ok){
            edit2->clear();
        }else if(ret == QMessageBox::Cancel){
            this->close();
        }
    }
}

void MyWnd::cancelbton2_clicked()
{
    int ret = QMessageBox::question(this,
                                    "取消",
                                    "是否确定要退出登录",
                                    QMessageBox::Yes|QMessageBox::No,
                                    QMessageBox::Yes);
    if(ret == QMessageBox::Yes){
        this->close();
    }
}

MyWnd::~MyWnd()
{
}

second.cpp

#include "second.h"
#include "ui_second.h"

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

Second::~Second()
{
    delete ui;
}
void Second::jump_slot()
{
    this->show();
}

测试结果

思维导图

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

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

相关文章

【QT】day2

1.完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按…

孙哥Spring源码第23集

第23集 finishBeanFactoryInitialization处理过程 1、处理国际化&#xff0c;事件操作&#xff0c;onRresh()的操作&#xff0c;注册监听器。 2、finishBeanFactoryInitialization(beanFactory)核心目的 通过Spring的BeanFactory创建单例&#xff08;非延迟&#xff09;这些对…

mongodb 无法远程连接

在本机可以通过 mongo 命令进行连接&#xff0c;但是外部无法连接&#xff0c;排查以下两个方面&#xff1a; 一&#xff0c;检查防火墙是否未开放端口 如果不确定&#xff0c;可以先关闭防火墙再试 二&#xff0c;查看mongodb启动时绑定的ip 执行如下命令&#xff1a; nets…

织梦CMS_V5.7任意用户密码重置漏洞复现

一、漏洞说明 织梦内容管理系统&#xff08;DeDeCMS&#xff09;以其简单、实用、开源的特点而著名。作为国内最知名的PHP开源网站管理系统&#xff0c;它在多年的发展中取得了显著进步&#xff0c;无论在功能还是易用性方面都有长足的发展。该系统广泛应用于中小型企业门户网站…

Linux集群时间同步方法

参考&#xff1a;https://www.cnblogs.com/felixzh/p/10638399.html

Foxmail 备份旧数据导入新电脑

文章目录 前言方法参考 前言 如何转移Foxmail 邮箱中的邮件&#xff0c;以便转移电脑后也同样可以使用呢&#xff1f; 方法 找到Foxmail 安装目录找到存放账号的文件夹【Storage】 该文件夹下存放了邮箱账户的所有相关信息&#xff08;账户配置&#xff0c;收件箱&#xff0…

[TI] [Textual Inversion] An image is worth an word

自己的理解&#xff1a; 根据几个图像&#xff0c;找出来一个关键字可以代表它们&#xff0c;然后我们可以再用这个关键字去生成新的东西。 提出关键字 1 Introduction word->token->embedding Textual Inversion过程 需要&#xff1a; ① a fixed, pre-trained text…

C语言的文件操作(炒详解)

⭐回顾回顾文件操作的相关细节⭐ 欢迎大家指正错误 &#x1f4dd;在之前的学习中&#xff0c;不管增加数据&#xff0c;减少数据&#xff0c;当程序退出时&#xff0c;所有的数据都会销毁&#xff0c;等下次运行程序时&#xff0c;又要重新输入相关数据&#xff0c;如果一直像这…

升级OpenSSL并进行编译安装

Packaging (OpenSSL)组件存在安全漏洞的原因是由于当前爆出的Openssl漏洞。 这个漏洞可能会导致泄露隐私信息&#xff0c;并且涉及的机器和环境也有所不同&#xff0c;因此修复方案也会有所不同。 目前&#xff0c;一些服务器使用的Nginx是静态编译OpenSSL&#xff0c;直接将Op…

【数据结构】C++实现红黑树

【数据结构】C实现红黑树 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路…

多数网工碌碌无为,都是败在这件事上

大家好&#xff0c;我是老杨。 这周是网络安全周&#xff0c;博览会的现场很热闹&#xff0c;我也被邀请去参观了一圈。 主要是学习观摩各大厂出的最新的安全产品、解决方案等。 这几天&#xff0c;也遇上了不少大佬。 有从路由交换转到安全的&#xff0c;也有从渗透转到防御…

Unity中Shader的模板测试

文章目录 前言什么是模板测试1、模板缓冲区2、模板缓冲区中存储的值3、模板测试是什么&#xff08;看完以下流程就能知道模板测试是什么&#xff09;模板测试就是在渲染&#xff0c;后渲染的物体前&#xff0c;与渲染前的模板缓冲区的值进行比较&#xff0c;选出符合条件的部分…

红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现和端口扫描 第二步&#xff1a;Web渗透&#xff08;修改XFF代理&#xff09; 第三步&#xff1a;数据库手工枚举 第四步&#xff1a;sudo php提权 总结与思考 写在开头 本篇博客在自己的理解之上根据大佬红队笔记的视频进行…

GPIO子系统编写LED灯的驱动、linux内核定时器

一、GPIO子系统 1.概念&#xff1a; 一个芯片厂商生产出芯片后会给linux提供一个当前芯片中gpio外设的驱动&#xff0c;我们当前只需要调用对应的厂商驱动即可完成硬件的控制。而linux内核源码中的gpio厂商驱动有很多&#xff0c;这里linux内核对厂商驱动做了一些封装&#x…

基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)

校园点餐小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统主要功能5.1 登…

python-字符串去掉空格的常见方法

python提供了去掉字符串空格的方法&#xff0c;可以满足大部分需求。 但在实际应用中&#xff0c;还需要灵活借助python其他方法&#xff0c;来实现字符串空格的删除。 比如&#xff0c;去掉字符串的全部空格、字符串连续空格保留一个等&#xff0c;都需要结合其他的方法来实现…

【kafka】mac环境安装kafka

生产中使用到的中间件使用心得记录&#xff0c;感兴趣可以关注我一起学习&#xff5e; 环境&#xff1a; 硬件&#xff1a;mac 软件&#xff1a;kafka v3.0.0 安装步骤&#xff1a; 终端安装&#xff1a; 通过brew安装&#xff0c;会默认直接安装最新的版本 步骤1&#xf…

Android StringFog 字符串自动加密

一、StringFog 作用 一款自动对dex/aar/jar文件中的字符串进行加密Android插件工具&#xff0c;正如名字所言&#xff0c;给字符串加上一层雾霭&#xff0c;使人难以窥视其真面目。可以用于增加反编译难度&#xff0c;防止字符串代码重复。 支持java/kotlin。支持app打包生成…

【JDK 8-函数式编程】4.6 方法引用与构造函数引用

一、 方法引用与构造函数引用 1. 说明 2. 语法: 二、静态方法 三、实例方法 四、构造函数 4.1 单个参数 4.2 2个参数 五、执行结果 一、 方法引用与构造函数引用 以前调用&#xff1a;对象.方法名、类名.方法名 jdk1.8提供了另外一种调用方式 :: 1. 说明 用来直接访…

子网的划分

强化计算机网络发现王道没有这一块的内容&#xff0c;导致做题稀里糊涂。于是个人调研补充。 子网划分是将一个大型IP网络划分成更小的子网&#xff0c;以实现更有效的网络管理和资源分配。 原因&#xff1a; 提高网络性能&#xff1a;子网划分可以减少广播域的大小&#xff…