1.addSpacing(int size)在layout的控件之间插入间距,其插入的间距是在setSpacing(int)的基础上的,即是layout的控件间的间距为addSpacing值+setSpacing值。
需要注意的是layout布局的控件之间是有默认距离为10(即setSpacing默认设置为10)通过setSpacing(0)函数设置为0可使控件紧贴。
2.addStretch(int stretch = 0)是在layout的控件之间插入stretch个控件的间距。
3.addSpacerItem(QSpacerItem(int w, int h,QSizePolicy::Policy hData = QSizePolicy::Minimum,QSizePolicy::Policy vData = QSizePolicy::Minimum))
一般用在控件大小不等的时候。例如窗口的标题栏:部分控件的大小不变,空白区域允许拉长或缩短时。
需要注意的是当你设置了某些控件的大小时,再使用layout布局可能会有出乎意料的情况应该是两者之间存在了冲突。
参考代码如下:
QVBoxLayout *vlayout =new QVBoxLayout;
vlayout->addWidget(top_Widget);
vlayout->addWidget(middle_Widget);
vlayout->setSpacing(0);
vlayout->addWidget(bottom_Widget);
vlayout->setContentsMargins(0,0,0,0);
m_mainwid->setLayout(vlayout);