2010-08-27 22 views
8

Quiero usar QCombobox como el Combobox de Swing en Java. Entonces necesito usar Model para sostener mi objeto. ¿Cómo puedo mantener mi objeto en QCombobox? (Creo que debería mantener los datos en el modelo porque QCombobox se diseñó de acuerdo con el patrón MVC ...) Cualquier ayuda será apreciada.Cómo utilizar el modelo para QCombobox

Respuesta

9

Dependiendo de lo que desea mostrar con su QComboBox, tendrá que escribir sus propios modelos, heredando QAbstractListModel, reimplementar rowCount() y data().

Luego, use QComboBox::setModel() para que el QComboBox lo muestre.

Si solo desea mostrar cadenas, puede usar un QStringListModel, provisto con Qt.

+0

¿Dónde se colocaron los datos (no el texto) en el modelo subclasificado? 'QComboBox :: model() -> index (fila, 1)'? – Orient

3

Puede agregar un modelo a su QCombobox utilizando la función setModel. Puede usar un modelo predefinido o crear el suyo heredando desde QAbstractItemModel.

Su modelo contendrá su objeto para separar la visualización de los datos.

2

Qt usa una versión simplificada de MVC que solo tiene las partes Modelo/Vista.

Puede utilizar una de las subclases provistas de QAbstractItemModel si no necesita ningún comportamiento especializado, cuál utilizar depende de si mantiene sus datos en un sistema de archivos o una estructura de datos en la memoria.

Debe leer toda la sección en model/view programming en la documentación de Qt.

Cuestiones relacionadas