Qt:对齐处于不同布局中的控件

时间:2010-10-06 20:42:00

标签: qt layout qt-designer

在使用Qt Designer设计的表单上,我有两个QGroupBox,每个QGroupBox都有一堆控件。两个组框的内容几乎相同(QLineEdits及相关标签)。

然而,我想要做的是将控件对齐在一起,就像它们是同一网格布局的一部分一样。但由于它们位于不同的容器中,因此它们不能共享相同的布局,我不想给它们一个固定的宽度。

有没有办法在Qt Designer中完成?如果没有,有没有办法在代码中做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:3)

在Designer中无法执行此操作。据我所知,Qt也没有提供在代码中执行此操作的好方法。如果你真的想要这个,你可能不得不依赖一些有点hacky的东西。

这是我的第一个想法:在包含两个组框的小部件中覆盖resizeEvent()以获得所有标签的首选大小(通过sizeHint()或minimumSizeHint())并设置所有标签的固定宽度到最大的首选宽度。

我鼓励你问问自己这是否真的很重要(是否值得开发时间?)并考虑是否可以通过稍微不同的UI设计完全避免这个问题。

顺便说一下,如果你还没有,你可能想看看QFormLayout。