image.png

    autoLayout.h文件

    1. #ifndef AUTOLAYOUT_H
    2. #define AUTOLAYOUT_H
    3. #include <QMainWindow>
    4. #include "window1.h"
    5. #include "window2.h"
    6. #include "window3.h"
    7. namespace Ui {
    8. class AutoLayout;
    9. }
    10. class AutoLayout : public QMainWindow
    11. {
    12. Q_OBJECT
    13. public:
    14. explicit AutoLayout(QWidget *parent = 0);
    15. void ChooseWidgets();
    16. int firstIndex = NULL;
    17. ~AutoLayout();
    18. private:
    19. Ui::AutoLayout *ui;
    20. window1 * W1;
    21. window2 * W2;
    22. window3 * W3;
    23. };
    24. #endif // AUTOLAYOUT_H

    autoLayout.cpp文件

    1. #include "autolayout.h"
    2. #include "ui_autolayout.h"
    3. #include <QToolBar>
    4. #include <QDebug>
    5. AutoLayout::AutoLayout(QWidget *parent) :
    6. QMainWindow(parent),
    7. ui(new Ui::AutoLayout)
    8. {
    9. ui->setupUi(this);
    10. window1 *W1 = new window1(this);
    11. window2 *W2 = new window2(this);
    12. window3 *W3 = new window3(this);
    13. ui->stackedWidget->addWidget(W1);
    14. ui->stackedWidget->addWidget(W2);
    15. ui->stackedWidget->addWidget(W3);
    16. ui->stackedWidget->setCurrentWidget(W1);
    17. //获取当前页面的序号
    18. firstIndex = ui->stackedWidget->currentIndex();
    19. QAction* newItemToolBar = new QAction(tr("界面1"),this);
    20. QAction* newItemToolBar2 = new QAction(tr("界面2"),this);
    21. QAction* newItemToolBar3 = new QAction(tr("界面3"),this);
    22. ui->toolBar->addAction(newItemToolBar);
    23. ui->toolBar->addSeparator(); // 添加分割线
    24. ui->toolBar->addAction(newItemToolBar2);
    25. ui->toolBar->addSeparator();
    26. ui->toolBar->addAction(newItemToolBar3);
    27. connect(newItemToolBar, &QAction::triggered, this, [=](){
    28. ui->stackedWidget->setCurrentIndex(2);
    29. });
    30. connect(newItemToolBar2, &QAction::triggered, this, [=](){
    31. ui->stackedWidget->setCurrentIndex(3);
    32. });
    33. connect(newItemToolBar3, &QAction::triggered, this, [=](){
    34. ui->stackedWidget->setCurrentIndex(4);
    35. });
    36. }
    37. AutoLayout::~AutoLayout()
    38. {
    39. delete ui;
    40. }

    image.png

    window1文件
    image.png

    window2文件
    image.png

    window3文件
    image.png