我的对话框中有一个回调来监听我的QListWidget中的项目选择:
...
QListWidget* listWidget;
...
MyDialog::handleSelectionChanged(const QItemSelection& selection) {
if (selection.indexes().isEmpty()) {
std::cout << "NOTHING SELECTED" << std::endl;
// TODO: how to get the actual QListWidgetItem here!?
}
else {
bool selected = LoadedFilesListWidget->selectionModel()->isSelected(selection.indexes().first());
std::cout << "ITEM CHANGE: " << (selected ? "SELECTED" : "UNSELECTED") << std::endl;
// TODO: how to get the actual QListWidgetItem here!?
}
}
正如您在todos中看到的,我无法弄清楚如何从QItemSelection对象获取关联的QListWidgetItem。我可以使用listWidget
类变量访问列表小部件。非常感谢任何帮助。
答案 0 :(得分:4)
要从选择中获取QListWidgetItem
,您可以执行以下操作:
MyDialog::handleSelectionChanged(const QItemSelection& selection)
{
[..]
QModelIndexList indexes = selection.indexes();
foreach(const QModelIndex &index, indexes) {
QListWidgetItem *item = LoadedFilesListWidget->item(index.row());
// ...
}
}