带参数的 PySide 信号

PySide Signal with Argument

QGroupBox 有信号 clicked,它有一个可选的 checked 参数。假设我正在尝试将插槽连接到某些 class 内部,如下所示:box.clicked.connect(self.func),因此插槽的声明必须是 def func(self, checked),但 func 正在只用一个参数调用。如何获得使用 self 和可选的 checked 参数调用 func 的所需行为?

具有可选默认参数的信号的行为在 PyQt 和 PySide 之间有所不同。在 PyQt 中,默认参数是 always 发送,但在 PySide 中你必须显式请求它:

    box.clicked[bool].connect(self.func)

这是一个更好的设计选择,我想说,因为如果您忘记发送默认值(即使您没有要求),PyQt 行为通常会导致错误。显式优于隐式的案例...