【问题标题】:Qt widget layout added eventQt 小部件布局添加事件
【发布时间】:2014-06-18 10:57:29
【问题描述】:

我有以下自定义小部件:

QBrowserContainer::QBrowserContainer(QWidget *parent) :
    QWidget(parent)
{

    QPushButton *test= new  QPushButton("Test",this);

    // ----> layout()->addWidget(test);
} 

在 Qt 创建器中,我将 QWidget 提升为 QBrowserContainer。

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

我知道我可以像这样创建布局并添加小部件:

QBrowserContainer::QBrowserContainer(QWidget *parent) :
        QWidget(parent)
    {

        QPushButton *test= new  QPushButton("Test",this);

        QHBoxLayout* pLayout = new QHBoxLayout(this);
        pLayout->addWidget(test);

    } 

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

谢谢

【问题讨论】:

    标签: c++ qt qwidget


    【解决方案1】:

    您可以通过ui-> 访问在设计器中创建的布局。例如,如果它是 QGridLayout,那么默认情况下它的名称是 gridLayout

    ui->gridLayout->addWidget(test);
    

    您可以在设计器中查看名称。

    【讨论】: