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?

War es hilfreich?

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

QModelIndex

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top