41

使用 pyqt4 和 python 2.6,我使用 qcombobox 来提供选项列表。我在使用所选选项时遇到问题。我已经能够在选择选项时使用信号触发方法,但问题是当用户点击运行时,需要考虑其中几个组合框的内容。所以基本上我需要将组合框的选定内容作为字符串获取。到目前为止,我只能使用这个:

print combobox1.currentText()

得到这个:

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

当我真正想要的是“测试选择”位时,有什么想法吗?我的组合框是这样制作的:

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

4 回答 4

86

您可以仅使用该str 函数将 QString 类型转换为 python 字符串。假设您没有使用任何 Unicode 字符,您可以获得如下的 python 字符串:

text = str(combobox1.currentText())

如果您使用任何 unicode 字符,您可以执行以下操作:

text = unicode(combobox1.currentText())
于 2011-05-19T18:09:20.003 回答
4

PyQt4 can be forced to use a new API in which QString is automatically converted to and from a Python object:

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

With this API, QtCore.QString class is no longer available and self.ui.comboBox.currentText() will return a Python string or unicode object.

See Selecting Incompatible APIs from the doc.

于 2015-04-14T13:59:07.977 回答
3

更改项目时获取 ComboBox 的文本

     self.ui.comboBox.activated.connect(self.pass_Net_Adap)

  def pass_Net_Adap(self):
      print str(self.ui.comboBox.currentText())
于 2012-03-14T16:12:28.357 回答
0

如果您想要 QString 对象的文本值,您可以使用该__str__属性,如下所示:

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

希望有帮助。

于 2011-05-19T17:43:31.977 回答