3

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

谢谢安东

4

2 回答 2

3

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

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

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

请注意,当 QWidget 子级升高或降低时,列表顺序会发生变化。升起的小部件将成为列表中的最后一个对象,而降低的小部件将成为列表中的第一个对象。

弄乱这个列表似乎是个坏主意。

于 2010-12-03T11:37:47.607 回答
1

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

于 2010-12-02T22:45:43.320 回答