qt space margin layout stretch 空间

使用qt为windows qt5.11 

先上图:


使用qtlayout 的时候,经常会碰到一些空余空间的问题。
margin 表示的是内部内容离容器四周边界的距离,只有四周,内部的控件之间的不算margin,上图中layout默认margin是9个像素。
可以看到widget默认的margin 是0,而layout有默认的margin 值四周都为9个像素。
layout内部的元素之间的间隔叫spacing。如上图的蓝色和黄色之间的红色空间,是该qhboxlayout 中间的分割的区域。 默认值是6。

void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = Qt::Alignment());

上面的layout中的函数中的stretch参数是用于控制layout中显示的比例的,layout可以修改内部空间的大小。但是修改的范围为控件本身的minimumsize 和maximumsize 之间。如果发现伸缩主窗口后,内部的控件无法按预期再缩小,就需要考虑设置控件的minimumsize,反之修改maximumsize。

总结:

qt中的自主伸缩控件对空间的使用为,margin(bigger then default margin)+contentsize(between minimumsize and maximumsize) +spacing(bigger then default spacing)。在拉伸时,如果超过content minsize,就会按stretch去显示,如果超过contentmaxsize,就会增加margin和spacing。另外有的控件是fixedheight的,表示该控件最大的高度和最小高度都是这个值。

知道这些之后,再来看下效果。

猜你喜欢

转载自blog.csdn.net/qiushangren/article/details/85114421