1.先创建Qwidget界面(不含ui),之后创建一个子界面subWidget(同样不含UI)
2.在QWidget中创建一个按钮,之后创建一个槽函数(实现主界面隐藏,子界面显示)
3.在subWidget中创建一个按钮,之后创建一个槽函数和一个信号(实现槽函数中emit信号)
4.在widget中通过信号把槽函数(widget再创建一个槽函数用来实现主界面隐藏,子界面显示)连接起来。
目录
代码部分如下:
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);
QPushButton* b = new QPushButton(two);
b->setText("我要回主界面");
b->move(150,100);
connect(a,&QPushButton::clicked,this,&Widget::quzi);
connect(b,&QPushButton::clicked,two,&subPage::quzhu);//子界面的槽函数发送信号(信号只用声明)
connect(two,&subPage::hh,this,&Widget::shixian);//信号和主界面链接起来
}
Widget::~Widget()
{
}
void Widget::quzi()
{
this->hide();
two->show();
}
void Widget::shixian()
{
this->show();
two->hide();
}
subpage.h:
#ifndef SUBPAGE_H
#define SUBPAGE_H
#include <QWidget>
class subPage : public QWidget
{
Q_OBJECT
public:
explicit subPage(QWidget *parent = nullptr);
signals:
void hh();
public slots:
void quzhu();
};
#endif // SUBPAGE_H
subpage.cpp:
#include "subpage.h"
#include <QPushButton>
#include "widget.h"
subPage::subPage(QWidget *parent) : QWidget(parent)
{
this->setWindowTitle("这是子界面");
}
void subPage::quzhu()
{
emit this->hh();
}