一、首先我们创建的工程如下:
1、实现的效果是
2、首先实现完之后如下: 开始进来的子页面如下:
3、点击按钮转到主页面之后如下:同时主页面也能继续回到子页面中
主要代码如下:
Form.h中:
#ifndef FORM_H
#define FORM_H
#include <QWidget>
#include "mainwindow.h"
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = 0);
~Form();
signals:
void signal_Test();
private slots:
void on_pushButton_clicked();
void slot_ui_switch();
private:
Ui::Form *ui;
MainWindow *mainwindow;
};
#endif // FORM_H
form.cpp中:
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
mainwindow = new MainWindow;
//信号和槽函数绑定都在主界面中完成
connect(mainwindow,SIGNAL(signal_ui_switch()),this,SLOT(slot_ui_switch()));
connect(this,SIGNAL(signal_Test()),mainwindow,SLOT(slot_slot_Test()));
connect(mainwindow,SIGNAL(signal_ipdisconnect()),this,SLOT(slot_ipdisconnect()));
}
Form::~Form()
{
delete ui;
}
void Form::on_pushButton_clicked()
{
emit signal_Test();
this->hide();
mainwindow->show();
}
void Form::slot_ui_switch()
{
mainwindow->hide();
this->show();
}
在form.UI中:
在mainwindow.h中:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
signals:
void signal_ui_switch();
void signal_ipdisconnect();
private slots:
void on_pushButton_clicked();
void slot_slot_Test();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
在mainwindow.cpp中:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
emit signal_ui_switch();
}
void MainWindow::slot_slot_Test()
{
this->show();
}
在main.cpp中:
#include "mainwindow.h"
#include <QApplication>
#include "form.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//MainWindow w;
Form w;
w.show();
return a.exec();
}
在mainwindow.UI中: