C++ QT使用stackwidget实现页面切换(含源码)
0.前言
在QT中一个界面中如何实现页面的切换,而不是新弹出的窗口,这里采用的stackwidget,以层叠widget的方式选定页面索引从而实现页面切换。
1.UI布局
1.1使用stackwidget
首先新建个项目,采用mainwindow和widget均可,主要是展示页面切换的组件,带不带菜单栏都无影响。
在控件当中搜索stackwidget,从而可以拖动设计stackwidget位置,stackwidget右上角便是stackwidget索引切换,默认生成是两个页面,通过左右键切换从而在不同的页面上实现控件管理。
如果想添加页面的话可以在QT designer里面直接添加:
到此为止,我们空白的页面上有了一个stackwidget,里面存放有两个空白的页面,为了方便辨别以及后续的代码化使用,这里针对每个页面摆放了一个按钮和一个标签,如下图所示,并且为了后续使用,对控件进行改名:
目前除了第三个界面依旧为空,其余两个界面均含有label标记。
2.代码方式添加页面实现页面切换
在stackwidget中代码化添加页面的方式也较为简单,步骤为:新建页面->页面上摆好布局及控件->stackwidget加入该页面,使用的话和ui设计页面同理,均为设置stackwidget索引即可。
QWidget* pageThree = new QWidget();
QLabel* labelThree = new QLabel(pageThree);
labelThree->setText("第三个页面");
// 采用水平布局存放label
QHBoxLayout *layout = new QHBoxLayout(pageThree);
layout->addWidget(labelThree);
layout->setAlignment(Qt::AlignCenter);
pageThree->setLayout(layout);
// 新添加的页面默认在最后,索引为2
ui->stackedWidget