Qt中 布局管理器失效问题

时间:2024-01-21 09:29:51

1 问题描述

在Qt5.12.0 版本中,使用 自动管理器发生,无法生效

2 问题代码

Widget::Widget(QWidget *parent)
: QWidget(parent), button1(this),button2(this),button3(this)
{
button1.resize(100,40);
button1.setText("button1"); button2.resize(100,40);
button2.setText("button2"); button3.resize(100,40);
button3.setText("button3"); QVBoxLayout vboxlayout;
vboxlayout.addWidget(&button1);
vboxlayout.addWidget(&button2);
vboxlayout.addWidget(&button3); setLayout(&vboxlayout); connect(&button1, SIGNAL(clicked()), this, SLOT(buttonptr1()));
connect(&button2,SIGNAL(clicked()),this,SLOT(buttonptr2()));
connect(&button3,SIGNAL(clicked()),this,SLOT(buttonptr3()));
}

3 问题确定和解决方案

代码中可以看出,QVBoxLayout的对象在栈中生成,在函数结束,对象也随之结束,导致管理器失效