qt 布局中添加widget_Qt布局之QStackedLayout

QStackedLayout是Qt布局的一种,它允许部件按堆叠方式排列,只显示顶部部件。文章介绍了如何使用QStackedLayout添加和切换部件,并探讨了StackingMode的StackOne和StackAll两种模式,展示了不同模式下的效果。
摘要由CSDN通过智能技术生成

之前认识了QBoxLayout、QGridLayout和QFormLayout。接着来认识Qt布局家族的成员QStackedLayout,集齐四种布局就可以召唤神龙了。

前面三种布局都是在同一个平面上对窗口部件布局,而QStackedLayout可以看成是不同平面的布局,就好像布局的窗口是叠在一起的一样,你(在默认的模式下)只能看到最上层的那一个窗口。这种特性很适合用来实现切换子界面的功能。

QStackedLayout基本用法

QStackedLayout的使用也很简单,上栗子:

be3da80b94e2ee55b6eaf9f93f515863.png

QStackedLayout通过addWidget将部件添加到布局,第一个添加到布局的下标为0,第二个添加到布局的下标为1,以此类推。还可以使用insertWidget将部件插入到中间。

要切换显示的部件使用setCurrentIndex(传入参数为下标),或者使用setCurrentWidget(传入参数为部件的指针)。设置当前部件就是将该部件置于栈顶。上例的运行结果如下图:

0dcf68cd5136d1637a1959e1fc428633.png

需要获取布局中的部件指针可以使用widget(传入下标),获取当前部件指针使用currentWidget(),获取当前下标使用currentIndex()。QStackedLayout的常用函数也就这么多了。

关于StackingMode

QStackedLayout默认情况下只有一个部件可见,但是QStackedLayout还有一种模式是布局中所有部件都可见,只不过currentWidget会被放在最上层。控制这个模式的属性就是StackingMode,只有两个取值StackOne和StackAll,顾名思义前者对应的是只有一个可见,后者是全部可见。将上例中的模式设置为StackAll:

addd82e53d8e1da5e731a773c6a7e2f5.png

为了看到效果将三个部件的宽度设置为不一样的,否者最上层挡住了其他部件,看起来和StackOne是一样的。程序运行效果如图:

9c9f3d15985186f6decaa1c20d13e9bf.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值