Подтвердить что ты не робот

Как получить QString из QListView выбранного элемента в Qt?

Мне нужно получить имя выбранного элемента в QListView как QString. Я пытался Google, но я не нашел ничего полезного.

4b9b3361

Ответ 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();