¿Cómo conseguir que el actual contenido de texto de un QComboBox?

El uso de 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 sido capaz de utilizar una señal para activar un método cuando está seleccionada la opción, pero el problema es que cuando el usuario haga clic en ejecutar, el contenido de varias de estas comboboxes necesitan ser tomadas en cuenta. Así que, básicamente, necesito conseguir el contenido seleccionado de un combobox como una cadena. Hasta ahora sólo he sido capaz de usar este:

print combobox1.currentText()

para conseguir esto:

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

cuando todo lo que realmente quiero es la «Prueba de Selección’ bits, alguna idea?
Mi cuadro combinado fue hecho como este:

combobox1 = qt.QComboBox()
combobox1.addItems(['Test Selection1', 'Test Selection2'])
mainLayout.addWidget(combobox1, 0, 0)
InformationsquelleAutor Ben | 2011-05-19

4 Kommentare

  1. 55

    Usted puede convertir el QString tipo de cadena python con sólo usar el str
    la función. Suponiendo que usted no está utilizando cualquier carácter Unicode puede obtener un python
    cadena de la siguiente manera:

    text = str(combobox1.currentText())

    Si usted está usando cualquiera de los caracteres unicode, que usted puede hacer:

    text = unicode(combobox1.currentText())
    • eso es perfecto! que hizo exactamente lo que tenía que hacer. Ahora estoy mirando de cambiar el elemento seleccionado en un control combobox sin tener que hacer clic en él. he probado .setItemText(«texto de la elección»), pero que me da el siguiente error: TypeError: QComboBox.setItemText(int, QString): argumento 1 ha inesperado type ‘str’ no sé de qué tipo se estaba esperando, o incluso si esta es la mejor manera de ir sobre ella. Yo sólo tendrá que cambiar el elemento seleccionado a una de las opciones en la lista.
    • El primer argumento para la setItemText es el índice del elemento en el QComboBox cuyo valor desea cambiar. Echa un vistazo a la documentación de Qt doc.qt.nokia.com/4.7-snapshot/qcombobox.html#setItemText. Usted necesita consultar la API de google docs para escribir a familiarizarse con los métodos disponibles, sus signatutre etc.
  2. 3

    PyQt4 puede ser obligado a usar una nueva API en la que QString se convierte automáticamente a partir de un objeto de Python:

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

    Con esta API, QtCore.QString clase no está más disponible y self.ui.comboBox.currentText() devolverá una cadena Python o unicode objeto.

    Ver La Selección Incompatible Api de la doc.

  3. 1

    Llegar el Texto del ComboBox cuando el elemento se cambia

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

    Si desea que el valor de texto de un objeto QString puede utilizar el __str__ de la propiedad, como este:

    >>> 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.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea