1.先创建Qwidget界面(不含ui),之后创建一个子界面subWidget(同样不含UI)
2.在QWidget中创建一个按钮,之后创建一个槽函数(实现主界面隐藏,子界面显示)
3.在subWidget中创建一个按钮,之后创建一个信号(实现子界面隐藏,主界面显示)
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "subpage.h"
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
subPage* two;
public slots:
void quzi();
void shixian();
};
#endif // WIDGET_H
widget.cpp:
#include "widget.h"
#include <QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
two = new subPage;
QPushButton* a = new QPushButton(this);
this->setWindowTitle("这是主界面");
a->setText("我想去子界面");
a->move(100,100);
connect(a,&QPushButton::clicked,this,&Widget::quzi);
// connect(two,&subPage::quzhu,this,&Widget::shixian);
}
Widget::~Widget()
{
}
void Widget::quzi()
{
this->hide();
two->show();
}
void Widget::shixian()
{
this->show();
two->show();
}
man.cpp:
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
subPage.h:
#ifndef SUBPAGE_H
#define SUBPAGE_H
#include <QWidget>
class subPage : public QWidget
{
Q_OBJECT
public:
explicit subPage(QWidget *parent = nullptr);
signals:
void quzhu();
public slots:
};
#endif // SUBPAGE_H
subPage.cpp:
#include "subpage.h"
#include <QPushButton>
#include "widget.h"
subPage::subPage(QWidget *parent) : QWidget(parent)
{
this->setWindowTitle("这是子界面");
QPushButton* b = new QPushButton(this);
b->setText("我想去主界面");
b->move(150,100);
connect(b,&QPushButton::clicked,this,&subPage::quzhu);
}
void subPage::quzhu()
{
Widget* w = new Widget;
w->show();
this->hide();
}
以上即可实现两个界面间的跳转。