Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get QString from QListView selected item in Qt?

Tags:

I need to get the selected item name in QListView as a QString. I have tried to google, but I haven't found anything useful.

like image 407
MartinS Avatar asked Jun 28 '12 13:06

MartinS


2 Answers

It depends on selectionMode lets say you have ExtendedSelection which means you can select any number of items (including 0).

ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection);

you should iterate through ui->listView->selectionModel()->selectedIndexes() to find indexes of selected items, and then call text() method to get item texts:

QStringList list;
foreach(const QModelIndex &index, 
        ui->listView->selectionModel()->selectedIndexes())
    list.append(model->itemFromIndex(index)->text());
qDebug() << list.join(",");
like image 65
KCiebiera Avatar answered Sep 20 '22 07:09

KCiebiera


In case if QAbstractItemView::ExtendedSelection is disabled (only possible to select one item at a time), this is how you can do it without any loop:

QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();
like image 43
vicrucann Avatar answered Sep 19 '22 07:09

vicrucann