QList & л; Т & GT; ошибка выполнения

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

QList<QGraphicsItem*> lineList;

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

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

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

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

Благодарю.

1

Решение

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

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

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

5

Другие решения

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

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

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

1

По вопросам рекламы [email protected]