QT DAY2

实现登录框中,当登录成功时,关闭登录界面,并跳转到其他界面

1.mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDebug>
#include <QIcon>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include<QTextToSpeech>      //文本转语音类

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    QPushButton *btn1;
    QPushButton *btn2;
    QLineEdit *edit1;
    QLineEdit *edit2;
    ~MainWindow();
signals:
    //登录页面跳转函数
    void jump();


private:
    Ui::MainWindow *ui;
    QTextToSpeech *speecher;      //定义一个播报员
public slots:
    void btn1_login();
    void btn2_cancel();
};

#endif // MAINWINDOW_H

2.第二个界面的头文件 third.h

#ifndef THIRD_H
#define THIRD_H

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

namespace Ui {
class third;
}

class third : public QWidget
{
    Q_OBJECT

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

public slots:
    void jump_slot();//定义有关信号处理的槽函数

private:
    Ui::third *ui;
};

#endif // THIRD_H

3.main.h

#include "mainwindow.h"
#include "third.h"
#include <QApplication>

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

    third t;
    //两界面跳转
    QObject::connect(&w,&MainWindow::jump,&t,&third::jump_slot);

    return a.exec();
}

4.mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

void fun()
{

}

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

    //设置窗口标题、图标
    this->setWindowTitle("Fly_Chat");
//    qDebug()<<this->size();//获取原窗口大小:400 300
    this->setWindowIcon(QIcon(":/icon_2/chat-bolt.png"));
    //设置窗口固定大小
    this->setFixedSize(600,500);

    //设置背景logo
    QLabel *lab1=new QLabel("logo",this);
    //设置大小
    lab1->resize(600,200);
    lab1->setPixmap(QPixmap(":/bg/2_scenery.jpg"));
    //设置内容为自适应大小
    lab1->setScaledContents(true);

    //设置账户密码图标
    QLabel *lab2=new QLabel("Username",this);
    lab2->resize(40,40);
    lab2->setPixmap(QPixmap("D:\\My-software6\\01_Icon\\icon\\userName.jpg"));
    lab2->setScaledContents(true);
    //移动组件
    lab2->move(140,270);

    QLabel *lab3=new QLabel("passwd",this);
    lab3->resize(40,40);
    lab3->setPixmap(QPixmap("D:\\My-software6\\01_Icon\\icon\\passwd.jpg"));
    lab3->setScaledContents(true);
    //移动组件
    lab3->move(140,330);

    //给播报员实例化空间
    speecher = new QTextToSpeech(this);

    //设置账户密码框
    edit1=new QLineEdit(this);
    edit1->resize(250,40);
    edit1->move(200,270);
    edit1->setPlaceholderText("账号/手机号/邮箱");

    edit2=new QLineEdit(this);
    edit2->resize(250,40);
    edit2->move(200,330);
    edit2->setPlaceholderText("密码");
    //把密码设置为密文模式
    edit2->setEchoMode(QLineEdit::Password);


    //设置登录与取消
    btn1=new QPushButton;
    btn1->setParent(this);
    btn1->setText("登录");
    btn1->resize(100,40);
    btn1->move(200,400);
    btn1->setIcon(QIcon("D:\\My-software6\\01_Icon\\icon\\login.png"));

    //btn1连接登录函数(qt5版本)
    connect(btn1, &QPushButton::clicked, this, &MainWindow::btn1_login);


    btn2=new QPushButton;
    btn2->setParent(this);
    btn2->setText("取消");
    btn2->resize(100,40);
    btn2->move(350,400);
    btn2->setIcon(QIcon("D:\\My-software6\\01_Icon\\icon\\cancel.png"));
    //取消按钮关闭界面(qt4版本)
    connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_cancel()));

    //* 信号函数也可以连接信号函数
//    connect(btn1,&QPushButton::clicked,this,&MainWindow::jump);
}

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

void MainWindow::btn1_login()
{
   if((edit1->text()=="admin")&&(edit2->text()=="123456"))
   {
       //语音播报edit1按钮中的文本内容
       //speecher->say("真相只有一个");

       qDebug()<<"登录成功";
       qDebug()<<"准备跳转";
       emit jump();//发射跳转信号
       this->close();//关闭登录页面
   }
   else
   {
      qDebug()<<"登录失败";
   }
}

void MainWindow::btn2_cancel()
{
    qDebug()<<"关闭界面";
    this->close();
}

5.third.cpp

#include "third.h"
#include "ui_third.h"

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

    //设置窗口固定大小
    this->setFixedSize(600,500);

    //设置背景logo
    QLabel *lab1=new QLabel("logo",this);
    //设置大小
    lab1->resize(600,200);
    lab1->setPixmap(QPixmap(":/bg/3_river.jpeg"));
    //设置内容为自适应大小
    lab1->setScaledContents(true);

}

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

void third::jump_slot()
{
    qDebug()<<"跳转成功";
    this->show();
}

登录界面

 跳转界面

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值