这个例子有效:(这里我的函数没有输入参数)
QtCore.QObject.connect(ComboJobType1_1, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")) ,self.InputChanged())
但是,我有必要发送一个参数,所以我尝试这样做:(更新我的函数以期望一个参数后):
QtCore.QObject.connect(ComboJobType1_1, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")) ,self.InputChanged("ComboJobType1_1"))
请注意,第一个示例正在运行,唯一的问题(我猜)是向我的函数发送一个参数(当我在函数中时,我必须知道组合框的名称)。
请多多指教... 谢谢你! 祝您度过美好的一天, 海豚
最佳答案
引用https://eli.thegreenplace.net/2011/04/25/passing-extra-arguments-to-pyqt-slot
button1.clicked.connect(lambda: self.on_button(1))
button2.clicked.connect(lambda: self.on_button(2))
def on_button(self, n):
print('Button {0} clicked'.format(n))
为我工作,这给了它一个简单的 lambda(将其转换为 funciton ref 而不是执行?
关于Python + pyQT - 将参数发送到连接的 Signal 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11223599/