【QT】Day 2
1> 继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中
second.h
#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class second;
}class second : public QWidget
{Q_OBJECTpublic: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_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic: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")); //logoui->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")); //logoui->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. 思维导图