example python pyqt pyqt4 python-2.6 qcombobox

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



pyqt combobox example (4)

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())

usando 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 utilizar una señal para activar un método cuando se selecciona la opción, pero el problema es que cuando se ejecutan los clics de uso, 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 obligar 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 Python o un objeto Unicode.

Consulte Selección de API incompatibles en el documento.


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.