Pregunta

Quiero utilizar un QComboBox con las "claves" y "valores" de una tupla similares a las utilizadas en un modelo de Django. Por ejemplo, tengo la siguiente estructura para el sexo de una persona.

SEX_CHOICES = (('M', 'Male'), ('F', 'Female'))

El primer elemento de la tupla contiene el código del sexo que se almacena en la base de datos, y el segundo, el texto que quiero mostrar en el QComboBox como un elemento.

¿Hay alguna manera en wich que pudiera establecer el valor QComboBox como M y muestra masculina. Un también cuando el usuario seleccione el elemento macho que podría conseguir el valor seleccionado como M.

Gracias

¿Fue útil?

Solución

Uso

cb.addItem  ( text, userData )

y pasar la clave DB como userData. Si es necesario cambiar la selección actual, uso cb.itemData() para conseguir la llave DB de cada elemento y compararlo con el que necesita.

Como alternativa, registrar los índices que se agregan elementos en un mapa Python y usar esto para mirar directamente el índice correcto.

Para hacer las cosas más fáciles de usar, envolver el QComboBox con una clase Python que ofrece setters y getters para la clave actual DB y que oculta el mapeo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top