我需要将QListView
中的所选项目名称作为QString
。我试过谷歌,但我没有找到任何有用的东西。
这取决于selectionMode让我们说你有ExtendedSelection
这意味着你可以选择任意数量的项目(包括0)。
ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
你应该遍历ui->listView->selectionModel()->selectedIndexes()
来查找所选项目的索引,然后调用text()
方法来获取项目文本:
QStringList list;
foreach(const QModelIndex &index,
ui->listView->selectionModel()->selectedIndexes())
list.append(model->itemFromIndex(index)->text());
qDebug() << list.join(",");
如果禁用QAbstractItemView::ExtendedSelection
(一次只能选择一个项目),这是你可以在没有任何循环的情况下完成的:
QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();