如何获取QComboBox的当前文本内容?
我在用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
在PyQt4中,可以强制使用一种新的接口,这种接口会自动把QString转换成Python对象,反之亦然:
import sip
sip.setapi('QString', 2)
使用这个新接口后,QtCore.QString
这个类就不再可用了,self.ui.comboBox.currentText()
会返回一个Python字符串或者unicode对象。
详细信息可以查看文档中的选择不兼容的API。
4
当下拉框中的选项改变时,如何获取其文本内容
self.ui.comboBox.activated.connect(self.pass_Net_Adap)
def pass_Net_Adap(self):
print str(self.ui.comboBox.currentText())
94
你可以通过使用 str
函数把 QString 类型转换成 Python 字符串。如果你没有使用任何 Unicode 字符,可以像下面这样得到一个 Python 字符串:
text = str(combobox1.currentText())
如果你使用了 Unicode 字符,可以这样做:
text = unicode(combobox1.currentText())