Qt addStretch()详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt addStretch()详解相关的知识,希望对你有一定的参考价值。

addStretch函数,是在布局的时候用到。

函数原型: void QBoxLayout::addStretch ( int stretch = 0 )

作用:平均分配Layout

比如:

QVBoxLayout *buttonLayout = new QVBoxLayout;
buttonLayout->addStretch(1);
buttonLayout->addWidget(Button1);
buttonLayout->addStretch(1);
buttonLayout->addWidget(Button2);
buttonLayout->addStretch(1);
buttonLayout->addWidget(Button3);
buttonLayout->addStretch(6);

以上是buttonLayout的布局,addStretch将空白没有widget的地方均分成9分,然后按照参数的大小分配弹簧。

所以,带的参数是说明均分的比例。

再比如:

vlayout->addStretch(2); //添加弹簧,均分布局
vlayout->addWidget(label); //布局左侧风格栏
vlayout->addWidget(styleComboBox);
vlayout->addStretch(1);

这样的效果是: 
技术分享

如果,vlayout->addStretch(2); 的参数改为1,效果是这样的:

技术分享

这样就一目了然了,一句话:按比例分配空余空间~~

同类型的函数还有 setStretchFactor()

layout->setStretchFactor(vlayout,1);
layout->setStretchFactor(edit,2);
layout->setStretchFactor(dragWidget,6);

这样就会按照 QBoxLayout 的类型(5种类型),按照比例参数,分配长宽比


以上是关于Qt addStretch()详解的主要内容,如果未能解决你的问题,请参考以下文章

Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

QT中按钮如何布局?

pyqt5 中的addStretch

QT 实用代码片段

Pyside - QGridLayout addStretch 选项?

Pyqt5 addStretch 在小部件之间?