【问题标题】:Qt: Align controls that are in separate layoutsQt:对齐位于不同布局中的控件
【发布时间】:2011-04-22 01:25:32
【问题描述】:
在使用 Qt Designer 设计的表单上,我有两个 QGroupBox,每个都有一堆控件。两个分组框的内容几乎相同(带有关联标签的 QLineEdits)。
然而,我想做的是将控件对齐在一起,就好像它们是同一网格布局的一部分一样。但是由于它们在不同的容器中,它们不能共享相同的布局,我不想给它们一个固定的宽度。
有没有办法在 Qt Designer 中做到这一点?如果没有,有没有办法在代码中做到这一点?
谢谢!
【问题讨论】:
标签:
qt
layout
qt-designer
【解决方案1】:
在 Designer 中无法做到这一点。据我所知,Qt 也没有提供在代码中执行此操作的好方法。如果你真的想要这个,你可能不得不依赖一些有点 hacky 的东西。
这是我的第一个想法:在包含两个分组框的小部件中覆盖 resizeEvent() 以获取所有标签的首选大小(通过 sizeHint() 或 minimumSizeHint())并设置所有标签的固定宽度到最大的首选宽度。
我建议您问问自己这是否真的很重要(是否值得花时间开发?)并考虑是否可以通过稍微不同的 UI 设计完全避免该问题。
顺便说一句,如果你还没有的话,你可能想看看 QFormLayout。