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
для расширения вашего списка на одну единицу.