如何在一个MainWindow页面(加载、切换多个页面)

qinzhiqiang 07-18 17:47 1,044次浏览

如何在一个MainWindow页面(加载、切换多个页面)

1、如视频所示,在MainWindow右键点击添加工具条;

2、在MainWindow中随意添加一个控件,我们添加一个button吧,然后在窗口上点击右键,选择布局,选择栅格布局,这时候窗口中的任何控件都可以随着窗口最大化、最小化了;因为我们这个实例中并不需要这个button,现在删除button,为什么在这里需要添加这个控件然后又删除呢?是因为如果窗口中一个控件都没有时,点击右键是不能给它加上布局的;

3、在Action Editor窗口添加两个Action,分别是Page1、Page2,然后把他们拖到工具条上;

4、在Action Editor窗口,右键点击Page1,点击“go to slot”,选择”triggered()“,就在mainwindow.cpp中创建了槽方法:

void MainWindow::on_actionPage1_triggered();

同样的方法创建了槽方法:

void MainWindow::on_actionPage2_triggered();

5、如视频所示,给项目添加两个Form1、Form2,并且在这两个界面上分别添加一个按钮;

6、在mainwindow.h文件中加头文件:

#include “form1.h”

#include “form2.h”

并申明两个指针:

Form1* mform1;

Form2* mform2;

7、在mainwindow.cpp构造函数中初始化 mform1, mform1:

mform1 = nullptr;

mform2 = nullptr;

8、在mainwindow.cpp的void MainWindow::on_actionPage1_triggered()槽方法中添加如下代码:

ui->gridLayout->removeWidget(mform2);

if(mform2!=nullptr)

delete mform2;

mform1 = new Form1;

ui->gridLayout->addWidget(mform1);

9、在mainwindow.cpp的void MainWindow::on_actionPage2_triggered()槽方法中添加如下代码:

ui->gridLayout->removeWidget(mform1);

if(mform1!=nullptr)

delete mform1;

mform2 = new Form2;

ui->gridLayout->addWidget(mform2);

运行效果如视频所示,点击Page1时,加载Form1页面, 点击Page2时,加载Form2页面;

  • 暂无推荐