前言
QStackedLayout,通过名字里带有一个stack,大概可以猜到今天学习的布局管理器的行为应该和stack相关,也就是和栈相关,通过栈能想到栈的后进先出以及每次只能拿到栈顶的数据,没错,今天学的就叫栈式布局管理器,这是最特别的一个布局管理器。
QStackedLayout特点
- 所有组件垂直于屏幕的方向被管理
- 被管理的组件都能够被显示在屏幕上
- 但每次只有一个组件被显示在屏幕上
- 只有最顶层的组件会在屏幕上显示
- 能够自由切换需要显示的组件
- 被管理的所有组件的大小是一样的,充满父组件的显示区
- 不能直接嵌套其他布局管理器,但是可以间接,后面再述。
通过视线的方向我们就能看到组件1将组件2和组件3给挡住了,所以在屏幕上能直接被展示出来的就是组件1。
QStackedLayout使用
几个实用函数
int addWidget(QWidget* widget)
功能:将widget组件添加到栈式布局管理器的尾部,并返回widget所在位置的索引。
注意:如果在调用该函数前QStackedLayout是空的,那么该widget就是当前被显示的widget。
QWidget* currentWidget()
功能:返回当前显示的组件对象,如果QStackedLayout是空的话就返回0
void setCurrentIndex(int index)
它是一个公有槽函数,可以通过index参数设置对应索引位置的组件变得可见
int currentIndex()
返回当前正被显示的组件的索引值
看一个简单例子:
QStackedLayout* stacklayout = ne