当前位置:   article > 正文

QT中实现子页面跳转到主页面(同时子页面和主页面能互相跳转)_qt如何让子界面和主界面同时显示

qt如何让子界面和主界面同时显示

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

1、实现的效果是

2、首先实现完之后如下: 开始进来的子页面如下:

3、点击按钮转到主页面之后如下:同时主页面也能继续回到子页面中

主要代码如下:

Form.h中:
  1. #ifndef FORM_H
  2. #define FORM_H
  3. #include <QWidget>
  4. #include "mainwindow.h"
  5. namespace Ui {
  6. class Form;
  7. }
  8. class Form : public QWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit Form(QWidget *parent = 0);
  13. ~Form();
  14. signals:
  15. void signal_Test();
  16. private slots:
  17. void on_pushButton_clicked();
  18. void slot_ui_switch();
  19. private:
  20. Ui::Form *ui;
  21. MainWindow *mainwindow;
  22. };
  23. #endif // FORM_H

form.cpp中:

  1. #include "form.h"
  2. #include "ui_form.h"
  3. Form::Form(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Form)
  6. {
  7. ui->setupUi(this);
  8. mainwindow = new MainWindow;
  9. //信号和槽函数绑定都在主界面中完成
  10. connect(mainwindow,SIGNAL(signal_ui_switch()),this,SLOT(slot_ui_switch()));
  11. connect(this,SIGNAL(signal_Test()),mainwindow,SLOT(slot_slot_Test()));
  12. connect(mainwindow,SIGNAL(signal_ipdisconnect()),this,SLOT(slot_ipdisconnect()));
  13. }
  14. Form::~Form()
  15. {
  16. delete ui;
  17. }
  18. void Form::on_pushButton_clicked()
  19. {
  20. emit signal_Test();
  21. this->hide();
  22. mainwindow->show();
  23. }
  24. void Form::slot_ui_switch()
  25. {
  26. mainwindow->hide();
  27. this->show();
  28. }

 在form.UI中:

在mainwindow.h中:

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. namespace Ui {
  5. class MainWindow;
  6. }
  7. class MainWindow : public QMainWindow
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit MainWindow(QWidget *parent = 0);
  12. ~MainWindow();
  13. signals:
  14. void signal_ui_switch();
  15. void signal_ipdisconnect();
  16. private slots:
  17. void on_pushButton_clicked();
  18. void slot_slot_Test();
  19. private:
  20. Ui::MainWindow *ui;
  21. };
  22. #endif // MAINWINDOW_H

在mainwindow.cpp中:

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QDebug>
  4. MainWindow::MainWindow(QWidget *parent) :
  5. QMainWindow(parent),
  6. ui(new Ui::MainWindow)
  7. {
  8. ui->setupUi(this);
  9. }
  10. MainWindow::~MainWindow()
  11. {
  12. delete ui;
  13. }
  14. void MainWindow::on_pushButton_clicked()
  15. {
  16. emit signal_ui_switch();
  17. }
  18. void MainWindow::slot_slot_Test()
  19. {
  20. this->show();
  21. }

 在main.cpp中:

  1. #include "mainwindow.h"
  2. #include <QApplication>
  3. #include "form.h"
  4. int main(int argc, char *argv[])
  5. {
  6. QApplication a(argc, argv);
  7. //MainWindow w;
  8. Form w;
  9. w.show();
  10. return a.exec();
  11. }

在mainwindow.UI中:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/95080
推荐阅读
相关标签
  

闽ICP备14008679号