Qt边距/小部件之间的间距

时间:2015-01-19 09:42:45

标签: c++ qt layout

我想管理我的小部件之间的空间,verticaly和horizo​​ntaly。

这是一张说明我想要的图片:

enter image description here

当我点击红点时,我想缩小/扩展红线所在的空间(垂直)。

当我点击蓝点时,我想缩小/扩展蓝线所在的位置(水平)。

我的架构是这样的:

一个带有布局的主Widget,其中包含左/右箭头按钮和所有白色视图的QWidget。

此QWidget包含QGridLayout。在这个QGridLayout中,我有"左","返回" ...小部件(截图中为白色)。

  • 带有布局的QWidget
    • 左箭头
    • 右箭头
    • 带有QGridLayout的QWidget(GRIDLAYOUT)
      • QWidget,内置VBoxLayout和2个标签。 (VIEW)

我尝试设置VIEW-> setContentsMargins();但是白色矩形保持不变,只有这个矩形内的间距发生变化(例如,在边框和"左边"标签之间(屏幕上的1和2))。

我还尝试设置GRIDLAYOUT-> setContentsMargins();但这次只有屏幕上3号和4号的间距才会发生变化。

显然,水平调整大小有相同的行为。 (截图上的蓝色标记。

间距不允许分别管理垂直和水平间距......

我希望你理解我试图解释的内容:o

我该如何管理?

提前谢谢你,

1 个答案:

答案 0 :(得分:5)

为了管理白色区域之间的空间,您可以轻松使用

QGridLayout()::setHorizontalSpacing(int spacing);
QGridLayout()::setVerticalSpacing(int spacing);

这将设置白色rects之间的空间,而不是白色rect和上部widget的边框之间的空间。对于这些,你将不得不使用(继承自QLayout):

QGridLayout()::setContentsMargins ( int left, int top, int right, int bottom )