c++Qt登录页面设计

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数

将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出"登录成功",并关闭该界面,弹出另一个界面。如果匹配失败,则输出登录失败,并将密码框中的内容清空

widget.h

复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT


signals:
    void  my_signal();//自定义一个信号,只声明,不实现
    void my_jump();//跳转页面的信号
public slots:
    void my_slot();


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

private slots:
    void on_pushButton_clicked();

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

second.h

复制代码
#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class Second;
}

class Second : public QWidget
{
    Q_OBJECT

public:
    explicit Second(QWidget *parent = nullptr);
    ~Second();
public slots:
    void jump_slot();//第二个页面准备的槽函数声明
private:
    Ui::Second *ui;
};

#endif // SECOND_H

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();
}

widgwt.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);
    //点击按钮关掉窗口
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(my_slot()));
    //判断登录是否成功
    connect(ui->pushButton,&QPushButton::clicked,[&](){
        QString username = ui->lineEdit->text();
        QString password = ui->lineEdit_2->text();

        if (username == "admin" && password == "123456")
            {
                qDebug() << "登陆成功" ;
                // 创建并显示主窗口
                emit my_jump();
                // 关闭登录窗口
                this->close();
            }
            else
            {
               qDebug() << "登陆失败" ;
               // 清空密码输入框
                ui->lineEdit_2->clear();
            }



});

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

void Widget::my_slot()
{
    this->close();
}


void Widget::on_pushButton_clicked()
{
}

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();

}

账号密码错误输出"登陆失败"信息,并清空密码

账号密码正确输出"登录成功"信息,并跳转新界面,关闭登录界面

xmind

相关推荐
Rsun045511 分钟前
3、Java 工厂方法模式从入门到实战
java·开发语言·工厂方法模式
wjs20245 分钟前
C++ 基本的输入输出
开发语言
码云数智-园园31 分钟前
Python的GIL锁如何影响多线程性能?有哪些替代方案?
开发语言
咬_咬35 分钟前
go语言学习(map)
开发语言·学习·golang·map
古城小栈36 分钟前
rustup 命令工具,掌控 Rust 开发环境
开发语言·后端·rust
lly2024061 小时前
NumPy 高级索引
开发语言
XY_墨莲伊1 小时前
【编译原理】实验二:基于有穷自动机FA词法分析器设计与实现
c语言·开发语言·c++·python
小辉同志1 小时前
74. 搜索二维矩阵
c++·leetcode·矩阵·二分查找
广州灵眸科技有限公司1 小时前
瑞芯微(EASY EAI)RV1126B 网络摄像头方案
开发语言·网络·科技·嵌入式硬件·物联网
少许极端1 小时前
算法奇妙屋(四十五)-CCPC备战之旅-1
java·开发语言·算法