QList <t>运行时错误</t>

时间:2013-08-25 16:41:36

标签: c++ qt qgraphicsscene qlist

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

QList<QGraphicsItem*> lineList;

当我想使用它时:

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

我遇到了运行时错误。 我很好奇为什么?

就我所知道的关于linelist.append()

的方式

感谢。

2 个答案:

答案 0 :(得分:5)

假设您要创建新的QList,则应使用QList::append() or << operator。来自Qt Docs:

  T&amp; T&amp; QList :: operator [](int i)   返回索引位置i处的项目作为可修改的引用。我必须是列表中的有效索引位置(即,0&lt; = i&lt; size())。   此功能非常快(恒定时间)。   另见at()和value()。

因此QList::operator[]不能用于填充列表。

答案 1 :(得分:1)

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

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

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