我注意到QObject :: children()方法返回一个对QObjectList的const引用,它包含qobject的子代。抛弃constness并使用qSort对列表进行排序是否安全?
由于 安东
答案 0 :(得分:3)
不,你不应该这样做。这是QObject :: children()的定义:
inline const QObjectList &children() const { return d_ptr->children; }
这意味着您可以直接获取内部对象列表的引用。 文档说:
请注意,列表顺序会在何时更改 QWidget儿童被抚养或 降低。引发的小部件 成为列表中的最后一个对象, 并且降低的小部件变为 列表中的第一个对象。
混淆这个列表似乎是一个坏主意。
答案 1 :(得分:1)
也许。但为什么要冒风险呢?你不能只复制QObjectList
并对本地副本进行排序吗?