Tengo un puntero a un objeto de un tercero QListView
, que simplemente muestra filas de texto. ¿Cuál es la mejor manera de obtener esa cadena de texto?Obtención de texto de un QListView
Respuesta
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 del modelo dataChanged()
a la función que extrae las cadenas. Ver QAbstractItemModel::dataChanged()
.
Puede preguntar al objeto QListView por su raíz QModelIndex y usarlo para iterar sobre las diferentes entradas utilizando los métodos hermanos/hijos. Puede acceder al texto asociado a cada índice llamando al método de datos en el índice con el rol especificado como Qt :: DisplayRole.
Para más detalles ver la siguiente documentación:
QAbstractItemView - clase padre a QListView
y http://doc.trolltech.com/4.5/qvariant.html#toString –
gracias, lo intentaré. ¿Hay algún espacio al que pueda conectar para hacer esto cuando se escribe un nuevo texto? –
- 1. ¿Hay alguna manera de mostrar iconos en QListView sin texto?
- 2. valor Obtención de entrada de texto HTML
- 3. Obtención de texto justificado en UITextField
- 4. Obtención de texto sin procesar desde JTextPane
- 5. Obtención de texto seleccionado en un navegador, multiplataforma
- 6. Qt QListView - ¿menús contextuales?
- 7. Uso de QStyledItemDelegate en QListView con QSqlQueryModel
- 8. Elementos personalizados en QListView
- 9. QListWidget o QListView con QItemDelegate?
- 10. QT4 QstringListModel en QListView
- 11. QListView evento hover?
- 12. Cómo seleccionar una fila en un QListView
- 13. seleccione primer elemento de QListView por defualt
- 14. cómo cambiar Qt qListView selección de icono resaltar
- 15. Obtención de un estado de objeto
- 16. Obtención de un delegado de methodinfo
- 17. Creación de un campo de búsqueda QLineEdit para elementos visualizados en un QListView
- 18. QListView/QListWidget con elementos personalizados y widgets de elementos personalizados
- 19. ¿Cómo obtener QString de QListView elemento seleccionado en Qt?
- 20. Cambiar el modo de selección múltiple para QListView
- 21. Eliminar una lista de elementos seleccionados en QListView
- 22. Render QWidget en el método paint() de QWidgetDelegate para un QListView
- 23. Obtención de DoDragDrop DragSource
- 24. Obtención de Stacktrace
- 25. Obtención de Valores de ExpressionTrees
- 26. Obtención de ubicaciones de direcciones de un método de sobrecarga
- 27. Obtención de un ARCHIVO * desde un archivo estándar
- 28. Obtención de información de fila después de un doble clic
- 29. Obtención de una instancia dentro de un módulo de Guice
- 30. Obtención de la ruta de acceso absoluta de un archivo
es esto ¿verdad? QObject :: connect (modelo, SIGNAL (dataChanged (QModelIndex, QModelIndex)), client_, SLOT (onText())) donde client_ es una clase derivada de QObject, y onText se declara en espacios públicos. –
Sí, esta es la idea. Si su firma onText() también coincide con dataChanged(), podrá realizar un bucle solo a través de los índices en los que cambiaron los datos, en lugar de la lista completa. – swongu
esta es ahora mi línea: QObject :: connect (modelo, SIGNAL (dataChanged (const QModelIndex, const QModelIndex)), client_, SLOT (onText (const QModelIndex, const QModelIndex))); devuelve verdadero, pero no veo la función que puse en la función "onText". ¿Algunas ideas? –