Qt小部件布局添加事件

Qt widget layout added event

本文关键字:添加 事件 布局 小部 Qt      更新时间:2023-10-16

我有以下自定义小部件:

QBrowserContainer::QBrowserContainer(QWidget *parent) :
    QWidget(parent)
{
    QPushButton *test= new  QPushButton("Test",this);
    // ----> layout()->addWidget(test);
} 

在Qt creator中,我将QWidget提升为QBrowserContainer。

在注释行我添加了一个小部件的布局,但我不能这样做,因为我们还没有布局,是添加在setupUI后QBrowserContainer创建。所以我的问题是:是否有任何事件被触发时,布局被添加到一个小部件,所以我可以添加小部件到创建的布局?

我知道我可以创建一个布局,并添加这样的小部件:

QBrowserContainer::QBrowserContainer(QWidget *parent) :
        QWidget(parent)
    {
        QPushButton *test= new  QPushButton("Test",this);
        QHBoxLayout* pLayout = new QHBoxLayout(this);
        pLayout->addWidget(test);
    } 

但是我想使用由设计器创建的布局(由SetupUI()创建)。

谢谢

您可以通过ui->访问在设计器中创建的布局。例如,如果是QGridLayout,则默认名称为gridLayout:

ui->gridLayout->addWidget(test);