我需要获取 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
的情况下用于QListViews?也就是说,如果只能选择一个选项,那么循环和列表就变得不必要了吗? - Paddre如果 QAbstractItemView::ExtendedSelection
被禁用(一次只能选择一个项目),那么你可以在不使用任何循环的情况下完成它:
QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();
QListView
文档(特别是其成员列表)以了解如何获取当前索引(一个QModelIndex
对象),然后从索引中获取其数据内容(一个QVariant
,可以转换为QString
)。 - alexisdm