Python 如何从PyQt组合框中获取当前值
我正在使用PyQt设计器,然后使用pyuic4对其进行转换。Python 如何从PyQt组合框中获取当前值,python,qt,pyqt,Python,Qt,Pyqt,我正在使用PyQt设计器,然后使用pyuic4对其进行转换。 我的ui文件具有如下组合框: self.comboBox = QtGui.QComboBox(self.groupBox_3) self.comboBox.setGeometry(QtCore.QRect(20, 30, 81, 22)) self.comboBox.setObjectName(_fromUtf8("comboBox")) self.comboBox.addItem(_fromUtf8(
我的ui文件具有如下组合框:
self.comboBox = QtGui.QComboBox(self.groupBox_3)
self.comboBox.setGeometry(QtCore.QRect(20, 30, 81, 22))
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
如您所见,我放在组合框中的文本不会显示在代码的这一部分中,但是它会显示在gui中
通常,当我有一些用户选择时,如单选按钮,我可以执行以下检查:
if self.RAnkle.isChecked():
我可以用输入文本做类似的事情。我试图用comboBox实现这个逻辑,就像我想说self.comboBox.getText()并返回用户选择的字符串一样。我试着做了一些项目,但我不能让它工作
例如,此代码:
self.comboBox.activated()
返回此错误消息:
TypeError: native Qt signal is not callable
我还尝试使用itemData(),但仍然收到错误:
TypeError: QComboBox.itemData(int, int role=Qt.UserRole): not enough arguments
我在回调中执行此操作,因此我首先执行以下操作:
self.analyzeButton.clicked.connect(self._AnalyzeData)
然后在函数_AnalyzeData中,我试图获取当前组合框项的文本
那么,这可能吗
谢谢好吧,关于你的错误,它们不是很容易解释吗?:-) 从您刚才链接的文档中: 无效激活(int) 这是此信号的默认过载。此信号在 用户在组合框中选择一项。已传递项的索引。 请注意,即使选择未更改,也会发送此信号。如果 你需要知道当选择实际改变时,使用信号 currentIndexChanged() 作为一个Qt信号,它不能直接被调用:它可以被发射,并且您可以创建一个插槽,当它发生时将被调用 QVariant QComboBox.itemData(self,int-index,int-role=Qt.UserRole) 返回中给定索引中给定角色的数据 组合框或QVariant。如果没有此角色的数据,则无效 另请参见setItemData() role参数有一个默认值,因此您可以忽略它,但必须给出索引
很高兴你找到了解决方案 如果要调用
连接函数
中的插槽
,并传递参数,则应使用lambda,例如:
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")),
lambda: self.materialsInstance.setFilterDict_Insert("L",self,"name",self.lineEdit.text()))
所以问题的答案是.currentText(),但如果有人能解释错误的原因,那就太好了。好吧,我找到了一个解决方案,但实际上这不是我想要做的,我刚刚意识到这一点哈哈。我想说的是,如果我有一个带有值的组合框,我怎么能仅仅通过使用某个特定值的名称来查询它,或者我需要知道该名称的索引。