在尝试将方法连接到Pyside中的信号时,我经常遇到问题
在我班上:
myButton = QPushButton()
someLineEdit = QLineEdit()
myButton.clicked.connect(self._someMethod (someLineEdit))
_someMethod函数是一个类方法
当我在方法中包含参数时,错误状态为“无法连接信号clicked()”
如果我从方法中删除参数,则可以正常连接。 我已经通过一个简单的字符串测试了此传递,但仍然收到相同的错误
以这种方式使用connect是否有解决方法或已知限制?
答案 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))