Ich brauche den gewählten Artikel Name in QListView als QString. Ich habe versucht, google, aber ich habe nichts nützliches gefunden.Wie bekomme ich QString von QListView ausgewählten Artikel in Qt?
Antwort
Es hängt von AuswahlMode lässt Sie sagen, Sie haben ExtendedSelection
was bedeutet, dass Sie eine beliebige Anzahl von Elementen (einschließlich 0) auswählen können.
ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
sollten Sie durch ui->listView->selectionModel()->selectedIndexes()
iterieren Indizes der ausgewählten Elemente zu finden, und rufen Sie dann text()
Methode Itemtexte zu erhalten:
QStringList list;
foreach(const QModelIndex &index,
ui->listView->selectionModel()->selectedIndexes())
list.append(model->itemFromIndex(index)->text());
qDebug() << list.join(",");
Was ist 'Modell 'hier? –
Gibt es eine saubere Möglichkeit, QListViews mit '' 'QAbstractItemView :: ExtendedSelection''' deaktiviert zu verwenden? I.e. wenn nur eine Auswahl möglich ist und die Schleife und Liste damit überflüssig werden? – Paddre
Im Fall, wenn QAbstractItemView::ExtendedSelection
deaktiviert ist (nur ein Punkt wählen an eine Zeit), ist dies, wie Sie es ohne Schleife tun können:
QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();
Blick auf die 'QListView' Dokumentation (vor allem seine [Mitgliederliste] (http: // qt-proje ct.org/doc/qt-4.8/qlistview-members.html)) um zu sehen, wie man den aktuellen Index (ein 'QModelIndex'-Objekt) erhält, und aus dem Index, seinen Dateninhalt abrufen können (a 'QVariant', das Sie in einen' QString' konvertieren können. – alexisdm