Beziehen von Text aus einem QListView
Frage
habe ich einen Zeiger auf ein Drittes QListView
Objekt, das einfach ist, Textzeilen angezeigt werden. Was ist der beste Weg, einen Einfluß dieser Textzeichenfolge zu bekommen?
Lösung
Das Modell, mit dem QListView::model()
, die Elemente enthält. Sie können etwas tun:
QListView* view ; // The view of interest
QAbstractItemModel* model = view->model() ;
QStringList strings ;
for ( int i = 0 ; i < model->rowCount() ; ++i )
{
// Get item at row i, col 0.
strings << model->index( i, 0 ).data( Qt::DisplayRole ).toString() ;
}
Sie erwähnen auch möchten Sie die aktualisierten Strings erhalten, wenn der Text geschrieben ist - Sie können dies tun durch die dataChanged()
Signal an die Funktion des Modells miteinander verbindet, dass Extrakte Saiten. Siehe QAbstractItemModel::dataChanged()
.
Andere Tipps
Sie können die QListView fragen Objekt für seine Wurzel QModelIndex und verwenden, die auf Iterierte über die verschiedenen Einträge der Geschwister / Kinder Methoden. Sie können den Text mit jedem Index zugeordnet zugreifen, indem die Daten-Methode auf dem Index mit dem als Qt angegebene Rolle Aufruf :: DisplayRole.
Weitere Informationen finden Sie in der folgenden Dokumentation:
QAbstractItemView - Elternklasse QListView