В моем приложении qt у меня есть этот объект, заполненный перед настройкой содержимого моего QTreeWidget:
QList<QTreeWidgetItem*> items;
Я заполняю QList следующим образом:
QVariant qv; // I need this for "attaching" to the item my linuxPackage object
qv.setValue(linuxPackage);
packRow->setData(1, Qt::UserRole,qv); // packRow is my own object inherited from QTreeWidgetItem, I "put" the QVariant into it
items.append(packRow); // then I put my item into the QList
в конце работы мой QList содержит почти 1000 элементов.
Мне нужно перебрать их, и для каждого элемента мне нужно получить данные "linuxPackage" следующим образом (проверено и работает):
Pkg linuxPackage = this->data(1,Qt::UserRole).value<Pkg>(); // Pkg is my own class for the linuxPackage object
Итак, я пытался извлечь необходимые данные следующим образом:
QList<QTreeWidgetItem*>::iterator iter;
for (iter = items.begin(); iter != items.end(); ++iter){
Pkg pack = iter->data(1,Qt::UserRole).value<Pkg>();
}
Но ничего не работает, даже не могу получить программу компиляции. Помогите! : D