У меня есть следующий код:
QList<QTreeWidgetItem *> selectedItems = ui->treeWidget->selectedItems();
for(QList<QTreeWidgetItem>::iterator i = selectedItems.begin(); i != selectedItems.end(); i++){
qDebug() << i;
}
Но есть ошибка:
conversion from 'QList<QTreeWidgetItem*>::iterator' to non-scalar type 'QList<QTreeWidgetItem>::iterator' requested
Ты пытался QList<QTreeWidgetItem *>::iterator
?
Ваш код, кажется, содержит различные типы ссылок, а именно:
QList<QTreeWidgetItem *> selectedItems = ui->treeWidget->selectedItems();
^
for(QList<QTreeWidgetItem>::iterator i = selectedItems.begin(); i != selectedItems.end(); i++)
^
Вы можете видеть, что вы используете указатель в первом случае, но не во втором. Это также то, что компилятор пытается написать вам. Для решения этой проблемы вам понадобятся два изменения:
for (QList<QTreeWidgetItem*>::iterator i = selectedItems.begin(); i != selectedItems.end(); ++i)
// ^
qDebug() << *i; // Need to change to dereference, respectively
Вы также можете использовать конструкцию foreach следующим образом, так как она немного короче для написания и понимания:
foreach (QTreeWidgetItem* item, selectedItems)
qDebug() << item;