使用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)
答案 0 :(得分:52)
只需使用str
即可将QString类型转换为python字符串
功能。假设您没有使用任何Unicode字符,您可以获得python
字符串如下:
text = str(combobox1.currentText())
如果您使用任何unicode字符,则可以执行以下操作:
text = unicode(combobox1.currentText())
答案 1 :(得分:3)
可以强制PyQt4使用一个新的API,其中QString自动转换为Python对象和从Python对象转换:
import sip
sip.setapi('QString', 2)
使用此API,QtCore.QString
类不再可用,self.ui.comboBox.currentText()
将返回Python字符串或unicode对象。
请参阅文档中的Selecting Incompatible APIs。
答案 2 :(得分:1)
在项目更改时获取ComboBox的文本
self.ui.comboBox.activated.connect(self.pass_Net_Adap)
def pass_Net_Adap(self):
print str(self.ui.comboBox.currentText())
答案 3 :(得分: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!'
希望有所帮助。