QT-day2

完善登录框

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

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

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

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

加载资源文件

QT-day2_第1张图片

mywnd.h

#ifndef MYWND_H
#define MYWND_H

#include 
#include 
#include 
#include 
#include 
#include 

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 

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 

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 
#include 
#include 
#include 
#include 

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

测试结果

QT-day2_第2张图片

QT-day2_第3张图片

思维导图

QT-day2_第4张图片

你可能感兴趣的:(qt,数据库,java)