Мне нужно получить имя выбранного элемента в QListView
как QString
. Я пытался Google, но я не нашел ничего полезного.
Как получить QString из QListView выбранного элемента в Qt?
Ответ 1
Это зависит от выбораMode позволяет сказать, что у вас есть 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(",");
Ответ 2
В случае, если QAbstractItemView::ExtendedSelection
отключен (можно выбрать только один элемент за раз), вы можете сделать это без какого-либо цикла:
QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();