如何获取QComboBox的当前文本内容?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

使用pyqt 4和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)
提问于
用户回答回答于

只需使用str功能。假设你没有使用任何Unicode字符,可以得到一个python字符串,如下所示:

text = str(combobox1.currentText())

如果你使用的是任何Unicode字符,则可以:

text = unicode(combobox1.currentText())
用户回答回答于

可以强制PyQt 4使用新的API,其中QString将自动转换到Python对象和从Python对象中转换出来:

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

有了这个API,QtCore.QString类不再可用,并且self.ui.comboBox.currentText()将返回Python字符串或Unicode对象。

扫码关注云+社区