找回密码
 立即注册
收起左侧

一个父亲的堆上孩子在销毁的时候的顺序?

2
回复
7765
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2016-12-16 11:31:13 显示全部楼层 |阅读模式
5Qter豆
一个Qobject parent的child,在parent销毁的时候children会被自动销毁。但是是不是按照创先的先后顺序,销毁?
1.现创建的先销毁,后创建的后销毁?
2.就是按照QObject::children中的顺序销毁?
  1. Widget::Widget(QWidget *parent) :
  2.     QWidget(parent),
  3.     ui(new Ui::Widget)
  4. {
  5.     ui->setupUi(this);

  6.     QObject *a = new QObject();
  7.     a->setObjectName("11a");
  8.     connect(a,&QObject::destroyed,this,&Widget::destroyAElement);

  9.     QWidget *b = new QWidget();
  10.     b->setObjectName("22b");
  11.     connect(b,&QObject::destroyed,this,&Widget::destroyAElement);

  12.     qDebug()<<this->children();

  13. }
复制代码

最佳答案

回复

使用道具 举报

累计签到:311 天
连续签到:1 天
2016-12-16 11:31:14 显示全部楼层
  1. Widget::Widget(QWidget *parent)
  2.     : QWidget(parent)
  3. {
  4.     MyObject *object_1=new MyObject(this);
  5.     qDebug()<<"first is"<<object_1;

  6.     MyObject *object_2=new MyObject(this);
  7.     qDebug()<<"second is"<<object_2;
  8. }
复制代码
  1. MyObject::~MyObject()
  2. {
  3.     qDebug()<<this;
  4. }
复制代码
结果:
  1. first is MyObject(0x6d72f0)
  2. second is MyObject(0x6d7300)
  3. MyObject(0x6d72f0)
  4. MyObject(0x6d7300)
复制代码
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-12-16 16:14:51 显示全部楼层
你可以在children控件中添加一个属性,在销毁时输出属性就知道了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了