Qt 之addSpacing(int size)、addStretch(int stretch = 0)、addSpacerItem(QSpacerItem *spacerItem)的区别

 

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);

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页