我有以下代码:
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
答案 0 :(得分:3)
您是否尝试过QList<QTreeWidgetItem *>::iterator
?
答案 1 :(得分:3)
您的代码似乎包含不同的类型,即:
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;