Как получить QString из выбранного элемента QListView в Qt?
Мне нужно получить выбранное имя элемента в QListView как QString. Я попытался Google, но я не нашел ничего полезного.
2 ответов
это зависит от 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();