对QObject子进行排序

时间:2010-12-02 22:35:45

标签: qt sorting children qobject

我注意到QObject :: children()方法返回一个对QObjectList的const引用,它包含qobject的子代。抛弃constness并使用qSort对列表进行排序是否安全?

由于 安东

2 个答案:

答案 0 :(得分:3)

不,你不应该这样做。这是QObject :: children()的定义:

inline const QObjectList &children() const { return d_ptr->children; }

这意味着您可以直接获取内部对象列表的引用。 文档说:

  

请注意,列表顺序会在何时更改   QWidget儿童被抚养或   降低。引发的小部件   成为列表中的最后一个对象,   并且降低的小部件变为   列表中的第一个对象。

混淆这个列表似乎是一个坏主意。

答案 1 :(得分:1)

也许。但为什么要冒风险呢?你不能只复制QObjectList并对本地副本进行排序吗?