布局管理器2 -> 比例系数
QBoxLayout和QGridLayout支持比例系数的概念
自定义组件大小更新时的比例系数
QBoxLayout中的比例系数设置
void setStretch(int index, int stretch);
bool setStretchFactor(QWidget * widget, int stretch);
bool setStretchFactor(QLayut* layout, int stretch);
// QVBoxLayout对应四个button
QVBoxLayout* layout = new QVBoxLayout();
layout->addWidget(&TestBtn1);
layout->addWidget(&TestBtn2);
layout->addWidget(&TestBtn3);
layout->addWidget(&TestBtn4);
layout->setStretch(0, 1);
layout->setStretch(1, 1);
layout->setStretch(2, 2);
layout->setStretch(3, 2);
layout->addWidget(&TestBtn1);
layout->addWidget(&TestBtn2);
layout->addWidget(&TestBtn3);
layout->addWidget(&TestBtn4);
layout->setStretchFactor(&TestBtn1, 1);
layout->setStretchFactor(&TestBtn2, 2);
layout->setStretchFactor(&TestBtn3, 1);
layout->setStretchFactor(&TestBtn4, 3);
QGridLayout中的比例系数设置
void setColumnStretch(int column, int stretch);
void setRowStretch(int row, int stretch);
void Widget::testGridLayout1()
{
QGridLayout* layout = new QGridLayout();
TestBtn1.setText("Test Button 1");
TestBtn1.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
TestBtn1.setMinimumSize(160, 30);
TestBtn2.setText("Test Button 2");
TestBtn2.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
TestBtn2.setMinimumSize(160, 30);
TestBtn3.setText("Test Button 3");
TestBtn3.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
TestBtn3.setMinimumSize(160, 30);
TestBtn4.setText("Test Button 4");
TestBtn4.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
TestBtn4.setMinimumSize(160, 30);
layout->setSpacing(10);
layout->addWidget(&TestBtn1, 0, 0);
layout->addWidget(&TestBtn2, 0, 1);
layout->addWidget(&TestBtn3, 1, 0);
layout->addWidget(&TestBtn4, 1, 1);
layout->setRowStretch(0, 1); // 设置第0行的比例因子
layout->setRowStretch(1, 3); // 设置第1行的比例因子
layout->setColumnStretch(0, 1); // 设置第0列的比例因子
layout->setColumnStretch(1, 3); // 设置第1列的比例因子
setLayout(layout);
}