QComboBox devuelve None Tipo. Como llegar Datos actuales?
Pregunta
He implementado 2 QComboBoxes uno de ellos con elementos insertados manualmente cada vez y otro que tenga elementos insertados con una lista (estoy usando Python)
Pero cuando intento para obtener el valor actual del cuadro combinado, devuelve Ninguno . Procedí como se especifica en esta pregunta: me he referido esta he proporcionado wat que he codificado. "comando" y "opción" son QComboBoxes (Perdón por el mal estilo) ¿Hay algún error en los índices?
self.command.insertItem(1,'Convert')
self.command.insertItem(2,'Compose')
self.command.insertItem(3,'Animate')
self.option.insertItems(268,list)
y recuperación:
self.selected_com=self.command.itemData(self.command.currentIndex())
self.selected_opt=self.option.itemData(self.option.currentIndex())
Solución
No ha seleccionado un elemento actual de los cuadros combinados. Si no hay ningún elemento actual e insertar un nuevo elemento con insertItem
, no se selecciona automáticamente como la actual. Es posible que desee llamar y self.command.setCurrentIndex(1)
self.option.setCurrentIndex(1)
.
A partir de la documentación sobre currentIndex()
:
Por defecto, para un cuadro combinado vacío o un cuadro combinado en el que ningún elemento actual se establece, esta propiedad tiene un valor de -1.
A partir de la documentación sobre itemData()
:
Devuelve los datos para la función dada en el índice dado en el cuadro combinado, o QVariant :: no válida si no hay datos para este papel.
A partir de la documentación de PyQt:
Cualquier objeto Python se puede utilizar siempre que sea Se espera que un QVariant. Ninguno será interpretado como un QVariant válido.
Otros consejos
Se puede utilizar este código para ir a buscar los datos actuales de ComboBox:
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;