QList<T> ошибка времени выполнения

У меня есть QList для хранения некоторых элементов на QgraphicsScene, таких как:

QList<QGraphicsItem*> lineList;

когда я хочу использовать это как:

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

я получил ошибку во время выполнения. Я любопытный почему?

кстати, я знаю о linelist.append()

Благодарю.

2 ответа

Решение

Предполагая, что вы хотите создать новый QList, вы должны использовать QList::append() or << operator, Из Qt Docs:

T & QList:: operator [] (int i) Возвращает элемент в позиции индекса i в качестве модифицируемой ссылки. я должен быть допустимой индексной позицией в списке (т. е. 0 <= i

Так QList::operator[] не может быть использован для заполнения списка, как это.

При условии, что itemIndex++ равно или ниже lineList.size(), вы можете использовать QList::insert

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

Во всяком случае, предпочтительнее использовать append для расширения вашего списка на одну единицу.

Другие вопросы по тегам