首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当您在Qt中使用setLayout时,布局是否会成为您的孩子?

当您在Qt中使用setLayout时,布局是否会成为您的孩子?
EN

Stack Overflow用户
提问于 2015-07-15 16:34:43
回答 1查看 208关注 0票数 0

下面是代码:

代码语言:javascript
复制
class MyWidget: public QWidget
{
  public:
    MyWidget();
    ~MyWidget();
  private:
    QHBoxLayout* theLayout;
    QVBoxLayout* subLayout1;
    QVBoxLayout* subLayout2;
    //More subLayouts
}

MyWidget::MyWidget()
{
  theLayout = new QHBoxLayout();
  subLayout1 = new QVBoxLayout();
  subLayout2 = new QVBoxLayout();
  //More subLayouts

  //-------- Fill subLayouts with widgets using addWidget --------

  theLayout->addLayout(subLayout1);
  theLayout->addLayout(subLayout2);
  //add all subLayouts

  setLayout(theLayout);
}

MyWidget::~MyWidget()
{
  //Destructor with nothing in it
}

**注:版面为班级成员。

因此,我知道在subLayouts中填充的小部件现在是MyWidget的子部件(或者至少我认为如果不是,请告诉我),所以我不需要在析构函数中删除它们(Qt清理它们了吗?),但是布局是否也是MyWidget的子类,还是需要在析构函数中删除这些呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 17:19:56

正如文献资料所说,setLayout调用将重新父级给定的布局。因此,这个小部件将是它的父部件,所以您不需要手动删除它。

我认为,如果可能的话,应该在参数中使用构造函数。而且,如果只是初始化布局,则不需要将布局作为成员存储。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31436113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档