Ver Mensaje Individual
  #16 (permalink)  
Antiguo 08/04/2015, 12:13
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Qt. Delegados. Usar diferente widget para editar y para mostrar

Bueno, sigo estirando el chicle con esta pregunta inicial, por no abrir un hilo nuevo.

Ahora la duda que tengo es cómo poder recoger el valor de un ítem de una tabla en forma de icono.

Me explico mejor:

Yo tengo un rango de valores e iconos asociados a ellos.
Entonces, en la función
Código C++:
Ver original
  1. QVariant data (const QModelIndex & index, int role) const;

yo envío el icono a la tabla de esta forma:

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

Pero ahora, cuando voy a definir el valor actual en el editor del delegado, no encuentro la forma de recuperar el valor numérico (en éste caso ese valor sería el índice actual de un QComboBox)

Lo más cerca de la solución que he estado, es enviando no sólo el icono sino también el propio índice:

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

Pero claro, eso me muestra el valor junto al icono.

Así que esa es la pregunta....cómo puedo hacer para obtener el valor del índice desde el icono (creo que no hay forma) o como enviar el índice, pero que no se muestre en la tabla.

Saludos y gracias como siempre

Y como parece que hoy es el día de Qt, aprovecho para publicitar este foro, en el que el amigo jc_moj tiene mucho que decir
__________________
Mi calculadora en Qt