Вопрос по qt, qlistview, qstring – Как получить QString из выбранного элемента QListView в Qt?

14

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

Посмотрите наQListView документация (особенно ееmember list ), чтобы увидеть, как получить текущий индекс (QModelIndex объект), и из индекса вы сможете получить его содержимое данных (QVariant что вы можете преобразовать вQString). alexisdm

Ваш Ответ

2   ответа
18

Это зависит от 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(",");
Что такое «модель»? Вот?
Есть ли чистый способ использовать это для QListViews сQAbstractItemView::ExtendedSelection отключен? То есть если возможен только один выбор, а цикл и список становятся ненужными?
10

В случае еслиQAbstractItemView::ExtendedSelection отключено (возможно выбрать только один элемент за раз), вот как вы можете сделать это без какого-либо цикла:

QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();

Похожие вопросы