一、创建一个新的页面
1 > 在原有工程上新建一个页面
2 > 选择Qt - Qt 设计师界面类 - choose
3 > 选择Widget模板 - 下一步
4 > 输入自定义类名 - 下一步
会自动生成其同名的.h .cpp .ui文件
5 > 最终效果
Headers存放.h文件
Soueces存放.cpp文件
Forms存放.ui文件
二、创建连接
1 > 两个界面头文件
/*********************************第一个界面的头文件*********************************/
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
signals:
void jump(); //自定义跳转函数
private slots:
void on_jumpBtn_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_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 jump_slot(); //定义有关处理跳转信号的槽函数
private:
Ui::Second *ui;
};
#endif // SECOND_H
2 > 源文件
/*********************************第一个界面的源文件*********************************/
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//信号函数也可以连接信号函数
//connect(ui->jumpBtn, &QPushButton::clicked, this, &Widget::jump);
}
Widget::~Widget()
{
delete ui;
}
跳转按钮对应的槽 函数
void Widget::on_jumpBtn_clicked()
{
//发射跳转信号
emit jump(); //jump是在头文件中自定义的信号函数
//关闭当前 界面
this->hide();
}
/*********************************第二个界面的源文件*********************************/
#include "second.h"
#include "ui_second.h"
Second::Second(QWidget *parent) :
QWidget(parent),
ui(new Ui::Second)
{
ui->setupUi(this);
}
Second::~Second()
{
delete ui;
}
//处理跳转信号函数对应的槽函数
void Second::jump_slot()
{
this->show(); //将当前界面进行展示
}
3 > 主函数
#include "widget.h"
#include"form.h" //第二个界面的头文件
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
Form f; //实例化第二个界面
//将第一个界面的信号函数与第二个界面的槽函数连接
QObject::connect(&w, &Widget::jump,&f,&Form::jump_slot);
return a.exec();
}