什么是StackedWidge布局
在实际应用中,经常会遇到如图中这类页面,点击左侧按钮或菜单,右侧区域(红色框内)会切换不同页面的内容,在QT中,就可以使用StackedWidge来实现这种布局。
简单来说,StackedWidge布局,是一个用于管理和显示多个页面的控件。所有页面堆叠在一起,但一次只显示其中一个,常用于用户需要在不同的视图或页面之间来回切换。
界面设置StackedWidge
这里仍然是先创建一个空白的页面(QWidget),然后在控件列表中找到 Stacked Widget,
拖拽到页面中,随意拖拽调整下大小,此时我们可以看到右侧页面中多了一个QStackedWidget控件,这个控件下默认增加了两个页面(QWidget)
点击第一个页面(page),会切换至page层级,我们放一个label,标记为第一个页面,同样方式再点击第二个页面(page_2),放一个label和一个button进来,这样两个页面就设计好了
点击 工具 --> 界面编辑器 --> 预览 看下效果
默认展示第一个页面,右上角有两个一左一右的三角形,可以切换展示的页面
点击向右的三角形,就会切换到第二个页面
代码实现StackedWidge
我们来看用代码如何实现这个页面
1、打开一个空界面对应的 .cpp文件
2、按照图中,我们将页面的所有控件都创建好
3、先看下效果
页面的大体布局是有了,但是我们发现现在还无法通过点击【第一个页面】【第二个页面】这两个按钮来切换右侧的页面,这里我们就需要使用到QT中非常关键的一个功能,信号和槽
4、如图,我们添加信号和槽,实现点击按钮切换展示页面的效果,这里先简单说一下信号和槽使用到的connect函数,后面会详细介绍
connect函数有四个参数,从左至右依次是,信号发出者、发出的信号、信号接收者、接收到信号要做的事情,再对应代码中来看,就是触发button的clicke动作,stackedWidget设置当前展示页面的序号
5、再简单调整下页面样式,我们看下效果