Python+;pyQT-向连接的信号函数发送参数
此示例有效:(此处我的函数没有输入参数) 但是,我必须发送一个参数,所以我尝试这样做:(在更新我的函数以期望一个参数后): QtCore.QObject.connect(ComboJobType1\u 1,QtCore.SIGNAL(\u fromUtf8(“currentIndexChanged(QString)”)),self.InputChanged(“ComboJobType1\u 1”)) 请注意,第一个示例正在运行,唯一的问题(我猜)是向我的函数发送一个参数(当我在函数中时,我必须知道组合框的名称) 请建议。。。 非常感谢。 祝你有美好的一天,Python+;pyQT-向连接的信号函数发送参数,python,function,parameters,combobox,pyqt,Python,Function,Parameters,Combobox,Pyqt,此示例有效:(此处我的函数没有输入参数) 但是,我必须发送一个参数,所以我尝试这样做:(在更新我的函数以期望一个参数后): QtCore.QObject.connect(ComboJobType1\u 1,QtCore.SIGNAL(\u fromUtf8(“currentIndexChanged(QString)”)),self.InputChanged(“ComboJobType1\u 1”)) 请注意,第一个示例正在运行,唯一的问题(我猜)是向我的函数发送一个参数(当我在函数中时,我必须知
Dolphin您需要提供发射对象(“from_对象”)和插槽处理程序(“self.my_处理程序”): 参考号
对我来说很有用,tht给了它一个简单的lambda(将其转换为functionon ref而不是execute?另一种方法是导入分部函数以将参数传递给slot函数
from functools import partial
QtCore.QObject.connect(ComboJobType1_1, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")) ,partial(self.InputChanged, "ComboJobType1_1"))
在搜索了一些类似的问题之后,我尝试了以下方法:QtCore.QObject.connect(ComboJobType1_1,QtCore.SIGNAL(_fromUtf8(“currentIndexChanged(QString)”),lambda objName=“ComboJobType1_1”:self.InputChanged(objName))我的函数,因为这次尝试是:def InputChanged(self,objName):print objName,我在打印结果中看到的是组合框中的选定值,而不是我发送给函数的字符串…请建议…谢谢你早上好,我成功了。无论如何,谢谢。我用lamda再次尝试了该示例,现在可以了:)非常好,欢迎来到StackOverflow:)如果我的回答对你有帮助,请接受。
QtCore.QObject.connect(from_object, QtCore.SIGNAL("nameOfSignal(QString)"), self.my_handler)
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))
from functools import partial
QtCore.QObject.connect(ComboJobType1_1, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")) ,partial(self.InputChanged, "ComboJobType1_1"))