【问题标题】:QList<T> runtime errorQList<T> 运行时错误
【发布时间】:2013-08-25 16:41:36
【问题描述】:

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

QList<QGraphicsItem*> lineList;

当我想像这样使用它时:

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

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

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

谢谢。

【问题讨论】:

  • 你在使用append的时候是否也遇到runtime错误?
  • 不,我知道追加。我需要用我的索引浏览 QList。

标签: c++ qt qgraphicsscene qlist


【解决方案1】:

假设你想创建一个新的 QList,你应该使用QList::append() or &lt;&lt; operator。来自 Qt 文档:

T & QList::operator[](int i) 返回索引位置 i 处的项目作为可修改的引用。 i 必须是列表中的有效索引位置(即 0

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-17
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多