QT中实现子页面跳转到主页面(同时子页面和主页面能互相跳转)

一、首先我们创建的工程如下:

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中:

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值