У меня есть QList для хранения некоторого элемента на QgraphicsScene, например:
QList<QGraphicsItem*> lineList;
когда я хочу использовать это как:
lineList[itemIndex++]=scene->createItemGroup(groupItems);
я получил ошибку во время выполнения.
Я любопытный почему?
кстати, я знаю о linelist.append ()
Благодарю.
Предполагая, что вы хотите создать новый QList, вы должны использовать QList::append() or << operator
, Из Qt Docs:
T & QList :: operator [] (int i)
Возвращает элемент в позиции индекса i в качестве модифицируемой ссылки. я должен быть допустимой индексной позицией в списке (т. е. 0 <= я < размер()).
Эта функция очень быстрая (постоянное время).
Смотрите также at () и value ().
Так QList::operator[]
не может быть использован для заполнения списка, как это.
При условии, что itemIndex++
равно или ниже lineList.size()
, ты можешь использовать QList :: вставка
lineList.insert(itemIndex++, scene->createItemGroup(groupItems));
Во всяком случае, предпочтительнее использовать append
для расширения вашего списка на одну единицу.