Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python+;pyQT-向连接的信号函数发送参数_Python_Function_Parameters_Combobox_Pyqt - Fatal编程技术网

Python+;pyQT-向连接的信号函数发送参数

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”)) 请注意,第一个示例正在运行,唯一的问题(我猜)是向我的函数发送一个参数(当我在函数中时,我必须知

此示例有效:(此处我的函数没有输入参数)

但是,我必须发送一个参数,所以我尝试这样做:(在更新我的函数以期望一个参数后):

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"))