Pregunta

Tengo un puntero a un tercer objeto QListView partido, que es simplemente mostrando filas de texto. ¿Cuál es la mejor manera de conseguir un asimiento de esa cadena de texto?

¿Fue útil?

Solución

El modelo, con acceso por QListView::model() , contiene los elementos. Se puede hacer algo como esto:

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

También menciona que le gustaría obtener las cuerdas actualizados cuando el texto está escrito - usted puede hacer esto mediante la conexión de la señal dataChanged() del modelo para la función que extrae las cadenas. Ver QAbstractItemModel::dataChanged() .

Otros consejos

Puede pedir el objeto QListView por su QModelIndex raíz y usar eso para iterar sobre las diferentes entradas utilizando los métodos de hermanos / hijos. Se puede acceder al texto asociado a cada índice llamando al método datos sobre el índice con el papel especificado como Qt :: DisplayRole.

Para más detalles, véase la siguiente documentación:

QAbstractItemView - clase padre a QListView

QModelIndex

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top