- setMargin(int)
- setContentsMargins(int left, int top, int right, int bottom);
- setContentsMargins(const QMargins &margins)
setMargin可以设置左、上、右、下的外边距,设置之后,他们的外边距是相同的。
setContentsMargins与其功能相同,但是可以将左、上、右、下的外边距设置为不同的值。
2.伸缩空间QSpacerItem--addStretch()
1).居右
在第一个控件之前添加伸缩,这样所有的控件就会居右显示。
QHBoxLayout *pHLayout = newpHLayout;
pHLayout->addStretch();//添加伸缩
pHLayout->addWidget(pButton1);
pHLayout->addWidget(pButton2);
2).居左
在最后一个控件之后添加伸缩,这样所有的控件就会居左显示。
QHBoxLayout*pHLayout=new QHBoxLayout();
pHLayout->addWidget(pButton1);
pHLayout->addWidget(pButton2);
pHLayout->addStretch();// 添加伸缩
3).居中
在第一个控件之前、最后一个控件之后添加伸缩,这样所有的控件就会居中显示。
QHBoxLayout*pHLayout=new QHBoxLayout();
pHLayout->addStretch();// 第一个控件之前添加伸缩
pHLayout->addWidget(pButton1);
pHLayout->addWidget(pButton2);
pHLayout->addStretch();// 最后一个控件之后添加伸缩
4).均分
在每一个控件之间都添加伸缩,这样所有的控件之间的间距都会相同。
3.addwidget
addWidget(QWidget *, int row, int column, Qt::Alignment = 0)
addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0)
默认的,我们添加控件至水平布局中,默认都是垂直方向居中对齐的。
这个单元将从row和column开始,扩展到rowSpan和columnSpan指定的倍数的行和列。如果rowSpan或columnSpan的值为-1,则窗口部件将扩展到布局的底部或者右边边缘处,Qt::Alignment为对齐方式。
QHBoxLayout *pHLayout = new QHBoxLayout();
pHLayout->addStretch();// 水平居左 垂直居上
pHLayout->addWidget(pButton1,0 , Qt::AlignLeft| Qt::AlignTop);
pHLayout->addWidget(pButton2,0 , Qt::AlignLeft| Qt::AlignTop);
pHLayout->addWidget(pButton3);// 水平居左 垂直居下
pHLayout->addWidget(pButton4,0 , Qt::AlignLeft| Qt::AlignBottom);
pHLayout->addWidget(pButton5,0 , Qt::AlignLeft| Qt::AlignBottom);
4).设置间距
- setSpacing(int spacing)
- setHorizontalSpacing(int spacing)
- setVerticalSpacing(int spacing)
setSpacing()可以同时设置水平、垂直间距,设置之后,水平、垂直间距相同。
setHorizontalSpacing()、setVerticalSpacing()可以分别设置水平间距、垂直间距。
5).设置行,列大小
-
setRowMinimumHeight(int row, int minSize)
设置行最小高度 -
setColumnMinimumWidth(int column, int minSize)
设置列最小宽度