Question

J'ai un pointeur à un tiers objet QListView, qui est simplement affiche des lignes de texte. Quelle est la meilleure façon d'obtenir une prise de cette chaîne de texte?

Était-ce utile?

La solution

Le modèle, accessible par QListView::model() , détient les éléments. Vous pouvez faire quelque chose comme ceci:

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

Vous mentionnez également que vous souhaitez obtenir les chaînes mises à jour lorsque le texte est écrit - vous pouvez le faire en connectant le signal dataChanged() du modèle à votre fonction qui extrait les chaînes. Voir QAbstractItemModel::dataChanged() .

Autres conseils

Vous pouvez demander à l'objet QListView pour son QModelIndex racine et l'utiliser pour parcourir les différentes entrées en utilisant les méthodes de frères et soeurs / enfants. Vous pouvez accéder au texte associé à chaque index en appelant la méthode des données sur l'indice du rôle spécifié comme Qt :: DisplayRole.

Pour plus de détails, voir les documents suivants:

QAbstractItemView - classe parent QListView

QModelIndex

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top