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的对象在栈中生成,在函数结束,对象也随之结束,导致管理器失效