布局管理器刚开始用的时候,会出现比例不是自己想要的,又或者自动缩放尺寸不理想,这个时候就会想要设置布局管理器中控件的大小,达到理想布局。
使用函数:
1.设置布局管理器内部尺寸比例:
QVBoxLayout::setStretchFactor(Qlayout *1,int);
Qlayout *1:添加的控件
int:所占布局管理器的比例
//例:
QVBoxLayout::setStretchFactor(btn1,2);
QVBoxLayout::setStretchFactor(btn2,1);
结果:btn1:btn2 = 2:1;
注:一般不设置尺寸比例的话,都是等比分布,设置尺寸比例的时候最好添加的控件都重新设置
2.添加弹簧使控件向左,向右,居中对齐:
QHBoxLayout::addStretch(int Stretch = 0);
用法:以水平管理器为例,
布局管理器在添加完控件后使用函数addStretch(),则控件排布向左靠齐
布局管理器在添加控件前使用函数addStretch(),则控件排布向右靠齐
布局管理器在添加每个控件前后使用函数addStretch(),则控件居中排布
//添加最后向左靠齐
HBoxLayout1 = new QHBoxLayout();
HBoxLayout1->addWidget(btn1);
HBoxLayout1->addWidget(btn2);
HBoxLayout1->addWidget(btn3);
HBoxLayout1->addWidget(btn4);
HBoxLayout1->addStretch();
//这个就像在这一个水平布局管理器添加了一个个弹簧将各个控件向前挤,靠左对齐,根据弹簧位置,弹簧压缩,设置对齐方式。
3.设置控件最大最小尺寸,控制在布局管理器内的缩放尺寸:
(1).QLabel::setMinimumSize(int,int);//最小尺寸
QLabel::setMaximumSize(int,int);//最大尺寸
lab2 = new QLabel(this);
lab2->setMinimumSize(502,278);
lab2->setMaximumSize(502,278);
控件可以设置最大尺寸和最小尺寸,如果最大尺寸和最小尺寸一样,控件就固定尺寸,在布局管理器里也一样,不会自动缩放。
(2).setFixedSize ( int w, int h ) ;//相当于最大最小尺寸相等
lab1->setFixedSize(800,450);
4.设置两个控件之间间隔:
QHBoxLayout::addSpacing(int);
VLayout1->addSpacing(50);
注:这个有点像占位符,类似隐形控件,根据你设定的大小占据空间。