带参数的 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 行为通常会导致错误。显式优于隐式的案例...
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 行为通常会导致错误。显式优于隐式的案例...