我需要将选定的项目名称QListView
作为QString
. 我试过谷歌,但我没有发现任何有用的东西。
问问题
30342 次
2 回答
25
这取决于 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(",");
于 2012-06-28T17:12:27.897 回答
19
如果 ifQAbstractItemView::ExtendedSelection
被禁用(一次只能选择一项),这就是您可以在没有任何循环的情况下执行此操作的方法:
QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();
于 2016-08-04T16:03:20.850 回答