我有一个包含三个元素的弹出列表( QComboBox ),我想显示一个 toolTip (通过 setToolTip 调用QComboBox)取决于项目的编号。
显示toolTip工作正常,但它是静态的,当用户选择的项目不同于第一项时,它不会改变。
这个想法是每次用户选择一个项目时获取当前项目编号,并将该项目的编号传递给方法 algorithms_info
algorithms_info 方法的签名是:
def algorithms_info(self, a=0):
所以我设置了一个信号:
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'
错误在信号声明中,但如果你有任何建议以另一种方式做到这一点,那么我会很高兴。
答案 0 :(得分:0)
您只需要self.algoList.currentItemChanged.connect(self.algorithms_info)
。我想在此之后,你会没事的。
答案 1 :(得分:0)
您可以在每个项目上设置工具提示,因此无需信号:
for index in range(10):
combo.setItemData(index, 'Item (%d)' % index, QtCore.Qt.ToolTipRole)