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