我注意到 QObject::children() 方法返回对 QObjectList 的 const 引用,其中包含 qobject 的子项。抛弃常量并使用 qSort 对列表进行排序是否安全?
谢谢安东
不,你不应该这样做。这是 QObject::children() 的定义:
inline const QObjectList &children() const { return d_ptr->children; }
这意味着您可以直接获取内部对象列表的引用。文件说:
请注意,当 QWidget 子级升高或降低时,列表顺序会发生变化。升起的小部件将成为列表中的最后一个对象,而降低的小部件将成为列表中的第一个对象。
弄乱这个列表似乎是个坏主意。
也许。但为什么要冒险呢?你不能只复制QObjectList
并排序你的本地副本吗?