Pyside-使用args时无法连接信号

时间:2018-10-25 08:37:58

标签: python pyside

在尝试将方法连接到Pyside中的信号时,我经常遇到问题

在我班上:

myButton = QPushButton()
someLineEdit = QLineEdit()
myButton.clicked.connect(self._someMethod (someLineEdit))

_someMethod函数是一个类方法

当我在方法中包含参数时,错误状态为“无法连接信号clicked()”

如果我从方法中删除参数,则可以正常连接。 我已经通过一个简单的字符串测试了此传递,但仍然收到相同的错误

以这种方式使用connect是否有解决方法或已知限制?

2 个答案:

答案 0 :(得分:0)

您需要将可调用函数(或插槽)作为参数传递给connect()函数,以使其起作用。现在,您可以通过调用函数self.someMethod()并将结果传递给connect()来实现。像这样更改代码:

myButton.clicked.connect(self._someMethod)

def self._someMethod():
    # do something here
    print(self.sender())  # this prints the sender of the event        

答案 1 :(得分:0)

您可以使用partial

from functools import partial

myButton.clicked.connect(partial(self._someMethod, someLineEdit))