2013-08-25 2 views
1

У меня есть QList для магазина какой-то предмет на QGraphicsScene как:QList <T> Ошибка выполнения

QList<QGraphicsItem*> lineList; 

, когда я хочу, чтобы использовать его как:

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

я получил сообщение об ошибке выполнения. Мне любопытно, почему?

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

спасибо.

+0

Вы также получаете ошибку времени выполнения при использовании append? –

+0

нет, я знаю об append. Мне нужно прокрутить QList с моим индексом. – dare

ответ

5

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

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

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

1

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

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

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

Смежные вопросы