Ver Mensaje Individual
  #17 (permalink)  
Antiguo 09/04/2015, 00:07
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Qt. Delegados. Usar diferente widget para editar y para mostrar

Una posible solución puede ser definirte un rol personalizado:

Código C++:
Ver original
  1. // Tu modelo
  2. class [Model] : public QAbstractItemModel
  3. {
  4.   public:
  5.     // Qt te facilita UserRole como punto de partida para tus roles personalizados
  6.     static const int IconIndexRole = Qt::UserRole+ 1;
  7. };

Entonces, el método data lo editas para añadir algo tal que:

Código C++:
Ver original
  1. if (index.column()==3)
  2.         {
  3.             if (role == [Model]::IconIndexRole )
  4.             {
  5.                return index.row().estado;
  6.             }
  7.         }

y ya solo te queda realizar la llamada correcta:

Código C++:
Ver original
  1. int iconIndex = model->data( index, [Model]::IconIndexRole ).toInt( );

¿Por qué esta solución?

Básicamente porque el dato que intentas exportar no es un elemento que puedas incluir en ninguno de los roles ya existentes, o al menos no es deseable hacerlo porque si no va a aparecer en la vista y no es lo que se pretende.

Puedes crear tantos roles personalizados como te de la gana... lo único importante es que fijes como punto de partida Qt::UserRole para evitar que tu rol se solape con alguno propio de Qt.

Un saludo.