Qt 捕捉QComboBox的当前索引

Qt 捕捉QComboBox的当前索引,qt,pyqt,pyqt4,Qt,Pyqt,Pyqt4,我有一个包含三个元素的弹出列表(QComboBox),我想根据项目编号显示工具提示(通过QComboBox上调用的setToolTip) 显示工具提示工作正常,但它是静态的,当用户选择与第一个不同的项目时,它不会更改 其思想是在用户每次选择一个项目时获取当前项目编号,并将该项目的编号传递给方法\u info 方法算法信息的签名为: 所以我设置了一个信号: self.algoList.connect(self.algoList, QtCore.SIGNAL(_fromUtf8("currentIt

我有一个包含三个元素的弹出列表(QComboBox),我想根据项目编号显示工具提示(通过QComboBox上调用的setToolTip)

显示工具提示工作正常,但它是静态的,当用户选择与第一个不同的项目时,它不会更改

其思想是在用户每次选择一个项目时获取当前项目编号,并将该项目的编号传递给方法\u info

方法算法信息的签名为:

所以我设置了一个信号:

self.algoList.connect(self.algoList, QtCore.SIGNAL(_fromUtf8("currentItemChanged(int)")), self.algorithms_info(int)) 
运行脚本时,将显示以下错误:

TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'

错误出现在信号声明中,但如果您对以其他方式执行此操作有任何建议,我将很高兴。

您只需要
self.algoList.currentItemChanged.connect(self.algorithms\u info)
。我想在这之后,你会没事的

您可以在每个项目上设置工具提示,因此不需要信号:

for index in range(10):
    combo.setItemData(index, 'Item (%d)' % index, QtCore.Qt.ToolTipRole)
for index in range(10):
    combo.setItemData(index, 'Item (%d)' % index, QtCore.Qt.ToolTipRole)