¿Cómo se obtienen los contenidos de texto actuales de un QComboBox?

Al usar pyqt4 y python 2.6, estoy usando un qcombobox para proporcionar una lista de opciones. Estoy teniendo problemas con el uso de la opción seleccionada. He podido usar una señal para activar un método cuando se selecciona la opción, pero el problema es que cuando el usuario hace clic en ejecutar, es necesario tener en cuenta el contenido de varios de estos cuadros combinados. Así que básicamente necesito obtener los contenidos seleccionados de un cuadro combinado como una cadena. Hasta ahora solo he podido usar esto:

print combobox1.currentText() 

para obtener esto:

 PyQt4.QtCore.QString(u'Test Selection2') 

cuando todo lo que realmente quiero es el bit ‘Selección de prueba’, ¿alguna idea? Mi combo box fue hecho así:

 combobox1 = qt.QComboBox() combobox1.addItems(['Test Selection1', 'Test Selection2']) mainLayout.addWidget(combobox1, 0, 0) 

Puede convertir el tipo QString a cadena de python simplemente usando la función str . Suponiendo que no esté utilizando ningún carácter Unicode, puede obtener una cadena de python como se muestra a continuación:

 text = str(combobox1.currentText()) 

Si está utilizando algún carácter Unicode, puede hacer:

 text = unicode(combobox1.currentText()) 

Se puede forzar a PyQt4 a usar una nueva API en la que QString se convierte automáticamente desde y hacia un objeto Python:

 import sip sip.setapi('QString', 2) 

Con esta API, la clase QtCore.QString ya no está disponible y self.ui.comboBox.currentText() devolverá una cadena de Python o un objeto Unicode.

Consulte Selección de API incompatibles en el documento.

Obtención del texto de ComboBox cuando se cambia el elemento

  self.ui.comboBox.activated.connect(self.pass_Net_Adap) def pass_Net_Adap(self): print str(self.ui.comboBox.currentText()) 

Si desea el valor de texto de un objeto QString, puede usar la propiedad __str__ , como esto:

 >>> a = QtCore.QString("Happy Happy, Joy Joy!") >>> a PyQt4.QtCore.QString(u'Happy Happy, Joy Joy!') >>> a.__str__() u'Happy Happy, Joy Joy!' 

Espero que ayude.