Qt QHBoxLayout或QVBoxLayout布局中,控件重叠问题。
目录问题描述问题原因解决方案问题描述起因: 项目某页面的布局,之前都是用绝对位置去布局的。后来需求各控件的位置需要随着某一控件的隐藏和显示去变化,这就很不方便,需要各种根据高度和显示状态去计算控件坐标并更新。 随着需求的增加,绝对位置已经满足不了各种能够变化,问题频出。 所以需要layout作为容器,容纳控件,以适应各控件的位置动态变化。-问题如下图所示:控件2高度变化之后竟然和其他控件重叠了。造
·
问题描述
- 起因:
项目某页面的布局,之前都是用绝对位置去布局的。后来需求各控件的位置需要随着某一控件的隐藏和显示去变化,这就很不方便,需要各种根据高度和显示状态去计算控件坐标并更新。
随着需求的增加,绝对位置已经满足不了各种能够变化,问题频出。
所以需要layout作为容器,容纳控件,以适应各控件的位置动态变化。
-问题如下图所示:
控件2高度变化之后竟然和其他控件重叠了。
造成了很大的困扰。
问题原因
简而言之,言而简之,我的layout所在主窗口的大小是固定不变的,layout的中的控件的大小策略决定了layout的大小。
因为我layout中的某些控件是设定了最大最小值和大小策略的。
解决方案
最后添加如下代码:
m_mainLayout->setSizeConstraint(QLayout::SetFixedSize);
完美解决。
当然遇到这种问题的其他人也可能需要使用其他的大小约束。
更多推荐
已为社区贡献1条内容
所有评论(0)