如何在一个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页面;
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/184793.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除