解决与PyQt新式信号槽的冲突

时间:2012-02-13 22:08:59

标签: qt pyqt signals-slots

QComboBox有两个信号,都叫currentIndexChanged;一个传递所选项目的索引,另一个传递所选项目的文本。当我将此信号连接到我的插槽时,使用类似self.myComboBox.currentIndexChanged.connect(self.mySlot)的内容,它会给我一个索引。有没有办法可以使用新式信号来表示我想要返回文本?

2 个答案:

答案 0 :(得分:8)

请参阅文档connecting signals portion中的第二个示例。

在你的情况下,它将是:

self.myComboBox.currentIndexChanged[QtCore.QString].connect(self.mySlot)

或者如果您使用的是QString

的v2 API
self.myComboBox.currentIndexChanged[str].connect(self.mySlot)

答案 1 :(得分:5)

如果要返回非默认值,则必须在括号内指定返回值

self.myComboBox.currentIndexChanged[str].connect(self.mySlot)

def mySlot(self, item):
    self.currentItem = item

请参阅:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/new_style_signals_slots.html