Una posible solución puede ser definirte un rol personalizado:
Código C++:
Ver original// Tu modelo
class [Model] : public QAbstractItemModel
{
public:
// Qt te facilita UserRole como punto de partida para tus roles personalizados
static const int IconIndexRole = Qt::UserRole+ 1;
};
Entonces, el método data lo editas para añadir algo tal que:
Código C++:
Ver originalif (index.column()==3)
{
if (role == [Model]::IconIndexRole )
{
return index.row().estado;
}
}
y ya solo te queda realizar la llamada correcta:
Código C++:
Ver originalint 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.