Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/03/2015, 14:16
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Qt. Delegados. Usar diferente widget para editar y para mostrar

Cita:
Iniciado por dehm Ver Mensaje
El caso es que si no se pueden usar diferentes widgets como editores ya está todo dicho.
Como editor puedes usar el widget que quieras... QComboBox, QLineEdit, un widget personalizado... Precisamente para poder darte esa flexibilidad, al usar el editor no estándar tienes que sobrecargar estos métodos, para configurar el editor correctamente.

Cita:
Iniciado por dehm Ver Mensaje
Era porque el QComboBox del último delegado usa el icono y una leyenda, y mi idea era que una vez seleccionada la opción, solamente apareciera el icono y no la leyenda.
Si quieres que solo salga el icono al salir de la edición, tienes que tocar el "data" del modelo para que no genere ningún texto en el role "DisplayRole" para la columna correspondiente... únicamente tienes que sacar la imagen en "DecorationRole". No se si me he explicado con claridad.

Tienes que saber diferenciar entre la edición y el visionado normal. Durante el visionado normal únicamente se llama a "data" para extraer la información del modelo. Cuando entras en modo edición, se llama al método para crear el editor y después a setEditorData... en setEditorData tienes que hacer las llamadas que necesites al "data" del modelo para obtener toda la información que necesites. Después se muestra el widget... el usuario modifica y sale de la edición. En ese momento se llama a "setModelData" para recuperar la información del editor y transferirla al modelo, para lo que tienes que llamar a "setData" del modelo. Finalmente se elimina el editor.