QT【day2】

完善登录框:

//main头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include  //信息调试类,用于打印输出
#include   //图标头文件
#include //按钮类头文件
#include  //行编辑器头文件
#include  //标签类头文件
#include 
#include 

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

    QPushButton *btn2 = new QPushButton("取消", this);
    QPushButton *btn1 = new QPushButton("登录", this);
    QLineEdit *edit2 = new QLineEdit("密码",this);
    QLineEdit *edit1 = new QLineEdit("账户",this);
    QLabel *lab3 = new QLabel("密码",this);
    QLabel *lab2 = new QLabel("账号",this);
    QLabel *lab1 = new QLabel(this);

signals:
    //跳转信号
    void jump();

public slots:
    //自定义槽函数
    void my_slot();
    //自定义按钮一的参函数申明
    void btn1_slot();


};
#endif // MAINWINDOW_H

//界面二头文件
#ifndef SECOND_H
#define SECOND_H

#include 
#include   //图标头文件

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 "mainwindow.h"
#include "second.h"

#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    Second s;

    //连接两个界面的信号与槽
    QObject::connect(&w, &MainWindow::jump, &s, &Second::jump_slot);



    return a.exec();
}

//mainwindoe.cpp
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //窗口设置
    this->setFixedSize(600,600);   //设置大小
    this->setWindowTitle("MUMU");  //文本内容
    this->setWindowOpacity(0.9);  //透明度
    this->setWindowIcon(QIcon(":/ikun/jaioyou.png"));  //图标

    //QLabel
    lab1->resize(600,230);  //设置大小
    lab1->setPixmap(QPixmap(":/ikun/tou.png")); //插入图片
    lab1->setScaledContents(true); //设置文本自适应

    //账户图标
    lab2->resize(60,40);    //设置大小
    lab2->move(70,280);     //移动位置
    lab2->setAlignment(Qt::AlignCenter);   //居中对齐
    lab2->setPixmap(QPixmap(":/ikun/jiaoyou2.png"));  //插入图片
    lab2->setScaledContents(true); //设置文本自适应

    //密码图标
    lab3->resize(60,40);  //设置大小
    lab3->move(70,340);   //移动位置
    lab3->setAlignment(Qt::AlignCenter);    //居中对齐
    lab3->setPixmap(QPixmap(":/ikun/pas.png"));     //插入图片
    lab3->setScaledContents(true); //设置文本自适应

    //QLineEdit
    //账户行编辑器
    edit1->resize(230,40);      //设置大小
    edit1->move(150,280);       //移动位置

    //密码行编辑器
    edit2->resize(230,40);      //设置大小
    edit2->move(150,340);       //移动位置
    edit2->setEchoMode(QLineEdit::Password);    //设置密文模式

    //QPushbutton
    //登录按钮
    btn1->resize(80,30);    //设置大小
    btn1->move(350,450);    //移动位置
    btn1->setIcon(QIcon(":/ikun/jiaoyou3.png"));    //设置图标

    btn2->resize(btn1->size());     //设置大小
    btn2->move(480,450);        //移动位置
    btn2->setIcon(QIcon(":/ikun/on.png"));      //设置图标

    //手动将取消按钮使用qt4版本连接到自定义的槽函数
    connect(btn2, SIGNAL(clicked()), this, SLOT(my_slot()));;

    //使用qt5版本的连接到自定义槽函数中
    connect(btn1, &QPushButton::clicked, this, &MainWindow::btn1_slot);


}

MainWindow::~MainWindow()
{
}

//自定义槽函数
void MainWindow::my_slot(){
    this->close();
}

//自定义按钮1槽函数
void MainWindow::btn1_slot(){
    if(edit1->text() == "admin" && edit2->text() == "123456"){
        qDebug() << "登录成功";
        //发射跳转信号
        emit jump();
        this->close();
    }else{
        qDebug() << "登录失败";
        QMessageBox::information(this, "提示", "账号或密码错误!");
        edit2->clear();
    }
}



//second.cpp
#include "second.h"
#include "ui_second.h"

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

    this->setFixedSize(600,600);   //大小
    this->setWindowTitle("MUWORLD");  //文本内容
    this->setWindowOpacity(0.9);  //透明度
    this->setWindowIcon(QIcon(":/ikun/jaioyou3.png"));  //图标


    ui->label->setPixmap(QPixmap(":/ikun/R-C.jpg"));
    ui->label->setScaledContents(true); //设置文本自适应
}

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

//跳转函数对应槽函数的定义
void Second::jump_slot()
{
    this->show();
}



默认代码加注释:

QT【day2】_第1张图片
QT【day2】_第2张图片
QT【day2】_第3张图片
思维导图:
QT【day2】_第4张图片

你可能感兴趣的:(qt,开发语言)