Qt QHBoxLayout或QVBoxLayout布局中,控件重叠问题。

问题描述

  • 起因:
     项目某页面的布局,之前都是用绝对位置去布局的。后来需求各控件的位置需要随着某一控件的隐藏和显示去变化,这就很不方便,需要各种根据高度和显示状态去计算控件坐标并更新。
     随着需求的增加,绝对位置已经满足不了各种能够变化,问题频出。
     所以需要layout作为容器,容纳控件,以适应各控件的位置动态变化。
    -问题如下图所示:
    预期效果和实际效果
    控件2高度变化之后竟然和其他控件重叠了。
    造成了很大的困扰。

问题原因

在这里插入图片描述
简而言之,言而简之,我的layout所在主窗口的大小是固定不变的,layout的中的控件的大小策略决定了layout的大小。
因为我layout中的某些控件是设定了最大最小值和大小策略的。

解决方案

最后添加如下代码:

m_mainLayout->setSizeConstraint(QLayout::SetFixedSize);

完美解决。
当然遇到这种问题的其他人也可能需要使用其他的大小约束。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值