创建部件加入布局中,并设置拉伸因子
QHBoxLayout* layout = new QHBoxLayout(this);
btn = new QPushButton("btn");
btn1 = new QPushButton("btn1");
btn2 = new QPushButton("btn2");
btn3 = new QPushButton("btn3");
layout->addWidget(btn);
layout->addWidget(btn1);
layout->addWidget(btn2);
layout->addWidget(btn3);
layout->setStretch(0, 1);
layout->setStretch(1, 2);
layout->setStretch(2, 3);
layout->setStretch(3, 4);
qDebug() << "btn: " << btn->width();
qDebug() << "btn1: " << btn1->width();
qDebug() << "btn2: " << btn2->width();
qDebug() << "btn3: " << btn3->width();
打印出的部件宽度:
解决方案:
在绘图事件 paintEvent() 中获取部件大小(注意要在构造函数先生成部件,不然先调用paintEvent访问的是未初始化的指针):
打印出的部件宽度: