Qt中 布局管理器失效问题

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

上一篇:winform 使用task不卡界面的2种方式


下一篇:初尝iOS开发之用代码添加按钮