Qt添加弹簧及使用(代码实现)

建议先看这篇Qt 之addSpacing(int size)、addStretch(int stretch = 0)、addSpacerItem(QSpacerItem *spacerItem)的区别
https://blog.csdn.net/zhou123456tao/article/details/113481942

1.new一个弹簧控件添加到布局中
addSpacerItem(QSpacerItem(int w, int h,QSizePolicy::Policy hData = QSizePolicy::Minimum,QSizePolicy::Policy vData = QSizePolicy::Minimum))

#include
// new一个宽可以拉伸,高度固定的弹簧在layout里直接additem(sparcer_item)即可
QSpacerItem * sparcer_item = new QSpacerItem(0,160,QSizePolicy::Expanding,QSizePolicy::Fixed);
main_layout->addItem(sparcer_item);
//or
main_layout->addSpacerItem(new QSpacerItem(0,160,QSizePolicy::Expanding,QSizePolicy::Fixed));

2.在layout之间插入间距,其插入的间距是在setSpacing(int)的基础上的,即是layout的控件间的间距为addSpacing值+setSpacing值。注意layout布局的控件之间默认距离为10(即setSpacing默认设置为10)通过setSpacing(0)函数设置为0可使控件紧贴。

main_layout->addSpacing(10);

3.用addStretch函数实现将nLayout的布局器的空白空间平均分配。
addStretch(int stretch = 0)是在布局器中增加一个伸缩量,里面的参数表示QSpacerItem的个数,默认值为零,会将你放在layout中的空间压缩成默认的大小。
例如:一个layout布局器,里面有三个控件,一个放在最左边,一个放在最右边,最后一个放在layout的1/3处,这就可以通过addStretch去实现。(可以控制布局中空白部分占比,相当于把空白部分分为9份,每块占比。)

main_layout->addStretch(1);
main_layout->addWidget(button1);
main_layout->addStretch(1);
main_layout->addWidget(button2);
main_layout->addStretch(1);
main_layout->addWidget(button3);
main_layout->addStretch(6);

你可能感兴趣的:(C/C++/qt,qt,开发语言)