如何在qt中访问布局中的布局

如何在qt中访问布局中的布局,qt,Qt,我在运行qt程序时出错。(在我添加这个新函数之前,它可以正常工作,并且可以完美地编译。)错误消息是 QLayout::parentWidget:一个布局只能有另一个布局作为父级。 分段故障(堆芯转储) 这是因为我试图向布局添加一个新的小部件,但布局gridLayoutSub位于另一个名为gridLayout\u的布局中 void perfectPanel::aaaf() { // some codes ... gridLayoutSub_->addWidget(kkk, 6

我在运行qt程序时出错。(在我添加这个新函数之前,它可以正常工作,并且可以完美地编译。)错误消息是

QLayout::parentWidget:一个布局只能有另一个布局作为父级。
分段故障(堆芯转储)

这是因为我试图向布局添加一个新的小部件,但布局
gridLayoutSub
位于另一个名为
gridLayout\u
的布局中

void perfectPanel::aaaf()
{
    // some codes ...
    gridLayoutSub_->addWidget(kkk, 6, 0, 1, 1);
}
有人知道出了什么问题以及如何解决吗

更多详细信息:这两个布局的声明 在mymainwindow类中,有一个dock小部件。为了定制这个dock小部件,我编写了一个名为
perfectPanel
的新类,它是
QWidget
的子类,然后在这个
perfectPanel
的构造函数中,我有以下代码:

groupBoxA = new QGroupBox(tr("groupBoxA"));
QGridLayout* gridLayoutA = new QGridLayout(groupBoxA);

VBoxLayoutPanel = new QVBoxLayout(this);
VBoxLayoutPanel->addWidget(groupBoxA);

groupBoxA->setLayout(gridLayoutA);
setLayout(VBoxLayoutPanel);
如您所见,
gridLayoutA
位于另一个布局
VBoxLayoutPanel
中。我提到的错误发生在我稍后在函数
void perfectPanel::aaaf
中将widget添加到gridLayoutA的过程中:

gridLayoutA->addWidget(kkk,6,0,1,1)

perfectPanel
类的标题
你能告诉我们这两个布局的声明是什么时候吗?当你把gridLayoutSub_uu添加到gridLayout_u时,好的,我已经添加了这两个布局的定义行。有什么想法吗?
perfectPanel
QDockWidget
的一个子类吗?它是
QWidget
的一个子类。我能找到的唯一“问题”是,你把小部件交给layouts构造函数,然后使用
setLayout
,这很可能是同一回事,但通常不会引起问题
class perfectPanel : public QWidget
{
    Q_OBJECT

public:

    explicit perfectPanel(QWidget *parent = 0);
    ~perfectPanel();

private:
    // ...
}