Domanda

Ho un puntatore ad un terzo oggetto partito QListView, che è semplicemente visualizzando righe di testo. Qual è il modo migliore di ottenere una sospensione di quella stringa di testo?

È stato utile?

Soluzione

Il modello, accessibile da QListView::model() , tiene gli elementi. Si può fare qualcosa di simile:

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() ;
}

Si parla anche che si desidera ottenere le stringhe aggiornati quando il testo è scritto - è possibile farlo collegando il segnale dataChanged() del modello per la funzione che estrae le stringhe. Vedere QAbstractItemModel::dataChanged() .

Altri suggerimenti

Si può chiedere l'oggetto QListView per la sua QModelIndex radice e l'uso che per scorrere le diverse voci utilizzando i metodi / bambini di pari livello. È possibile accedere al testo associato a ogni indice chiamando il metodo dei dati sull'indice con il ruolo specificato come Qt :: DisplayRole.

Per maggiori dettagli vedere la seguente documentazione:

QAbstractItemView - classe genitore a QListView

QModelIndex

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top