【QT】Day 2

1> 继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中

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

private:
    Ui::second *ui;
};

#endif // SECOND_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>       //信息调试类,用于打印输出的
#include <QIcon>        //图标头文件
#include <QPushButton>  //按钮类头文件
#include <QLineEdit>    //行编辑器类
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

public slots:   //在该函数下要定义公共槽函数
//    void loginbtn_slot();  //自定义处理"登录"按钮发射信号的槽函数申明
    void cancebtn_slot();  //自定义处理"取消"按钮发射信号的槽函数申明

signals:
    void loginjump();

private slots:
    void on_loginBtn_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_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;   //实例化第2个界面
    QObject::connect(&w,&Widget::loginjump,&s,&second::loginjump_slot);  //连接2个界面的信号与槽

    return a.exec();
}

 second.cpp

#include "second.h"
#include "ui_second.h"

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

    //设置logo图
    ui->hqyj->setPixmap(QPixmap(":/icon/logo.png"));     //logo
    ui->hqyj->setScaledContents(true);  //设置内容自适应
}

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

void second::loginjump_slot()
{
    this->show();
}


 widget.cpp

#include "widget.h"
#include "ui_widget.h"

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

    //1.界面的配置
    this->setFixedSize(480,400);    //设置固定尺寸
    this->setWindowTitle("鹏哥快聊"); //窗口标题
    this->setWindowIcon(QIcon(":/icon/wodepeizhenshi.png"));   //设置窗口图标
    this->setWindowOpacity(1);     //设置透明度

    //设置logo图
    ui->logoLab->setPixmap(QPixmap(":/icon/logo.png"));     //logo
    ui->logoLab->setScaledContents(true);  //设置内容自适应

    //2、设置账号和密码-标签
    ui->userNameLab->resize(30,30);
    ui->userNameLab->setPixmap(QPixmap(":/icon/userName.jpg"));
    ui->userNameLab->setScaledContents(true);  //设置内容自适

    ui->pwdLab->resize(30,30);
    ui->pwdLab->setPixmap(QPixmap(":/icon/passwd.jpg"));
    ui->pwdLab->setScaledContents(true);  //设置内容自适应

    //3、设置账号和密码-输入框
    ui->userNameEdit->setPlaceholderText("QQ号码/手机/邮箱");
    ui->pwdEdit->setEchoMode(QLineEdit::Password);   //设置密文模式
    ui->pwdEdit->setPlaceholderText("密码");          //设置占位符

    //4、设置登录和取消图标
    ui->loginBtn-> setIcon(QIcon(":/icon/login.png"));//设置按钮图标
    ui->cancelBtn-> setIcon(QIcon(":/icon/cancel.png"));//设置按钮图标

    //手动将按钮3的clicked信号与自定义的槽函数进行连接
    connect(ui->cancelBtn, SIGNAL(clicked()), this, SLOT(cancebtn_slot()));
}

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


//自定义槽函数,关于"取消"按钮对应槽函数的实现
void Widget::cancebtn_slot()
{
    this->close();
}


void Widget::on_loginBtn_clicked()
{
    if((ui->userNameEdit->text() == "admin") && (ui->pwdEdit->text()=="123456"))    //获取用户名和密码
    {
        qDebug() << "登录成功";
        emit loginjump();    //发射跳转信号
        this->close();  //关闭自身界面
    }
    else
    {
        qDebug() << "登录失败";
        ui->pwdEdit->clear();   //清空密码框内容
     }
}

2> 新建一个工程文件,将默认提供的代码加上注释信息

工程管理文件:

 头文件

主函数

 源文件

 

 

3. 思维导图

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值