• 3444阅读
  • 1回复

gui 控件 new 时都不须指定 parent 吗? [复制链接]

上一主题 下一主题
离线neeme
 

只看楼主 倒序阅读 楼主  发表于: 2016-06-16
// .h
class ca : public QWidget
{
....
public:
      QGridLayout  *m_layout;
      QLineEdit  *m_name;
.....
}
// .cpp
ca::ca(...)
{
   m_layout = new QGridLayout;
   setLayout(m_layout);
   m_name = new QLineEdit;
   m_layout->addWidget(m_name);
}
ca::~ca()
{
}
请问以上可行吗? 在 delete ca 的实例时,系统会自动 delete m_name 吗?
谢谢!

开发平台:Ubuntu 16.04 64bit + Qt 5.9.4
运行平台:Ubuntu 16.04 64bit
离线马侬骑士

只看该作者 1楼 发表于: 2016-06-16
是不必须的可以后指定parent,当然parent必须比你的child 先创建,由于QT的object是树形结构

   setLayout(m_layout); // ca将自动成为m_layout的parent

   m_layout->addWidget(m_name);; // m_layout将自动m_name成为的parent

在 delete ca 的实例时,会自动删除的
快速回复
限100 字节
 
上一个 下一个