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. 思维导图