QList<T> 运行时错误

QList<T> runtime error

本文关键字:运行时错误 gt QList lt      更新时间:2023-10-16

我有一个QList,用于在QgraphicsScene上存储一些项目,如:

QList<QGraphicsItem*> lineList;

当我想像一样使用它时

lineList[itemIndex++]=scene->createItemGroup(groupItems);

我遇到了一个运行时错误。我是古玩为什么?

顺便说一句,我知道linelist.append()

谢谢。

假设您想要创建一个新的QList,那么您应该使用QList::append() or << operator。来自Qt文档:

T&QList::运算符[](int i)返回索引位置i处的项作为可修改的引用。i必须是列表中的有效索引位置(即0<=i<size())。这个函数非常快(恒定时间)。另请参见at()和value()。

所以QList::operator[]不能用来填充这样的列表。

假设itemIndex++等于或低于lineList.size(),则可以使用QList::insert

lineList.insert(itemIndex++, scene->createItemGroup(groupItems));

无论如何,最好使用append将您的列表扩展一个单位。