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

相关推荐
allway22 分钟前
How to Echo Multiline to a File in Bash [3 Methods]
开发语言·chrome·bash
weixin_462446233 分钟前
手把手教你用 Bash 脚本自动更新 /etc/hosts —— 自动绑定网卡 IP 与节点名
开发语言·tcp/ip·bash
一个梦醒了5 分钟前
安装git bash选项推荐
开发语言·git·bash
ct97830 分钟前
React 状态管理方案深度对比
开发语言·前端·react
ao-weilai1 小时前
C++:哈希表
c++·哈希算法·散列表
数量技术宅1 小时前
2026量化前沿:从Reddit热帖到Python实战,如何用赫斯特指数(Hurst)狙击虚假突破?
开发语言·python
汉克老师1 小时前
GESP7级C++考试语法知识(二、指数函数(1、pow() 函数)
c++·指数函数·pow·gesp7级·精度误差
华如锦1 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
huangdong_1 小时前
电商商品SKU图自动分类技术实现:从DOM解析到智能归档
开发语言
dog2501 小时前
网络长尾延时的重尾本质
开发语言·网络·php