带参数的PySide信号

时间:2016-04-25 02:48:54

标签: python pyside signals-slots qgroupbox

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

1 个答案:

答案 0 :(得分:1)

具有可选默认参数的信号的行为在PyQt和PySide之间不同。在PyQt中,默认参数始终已发送,但在PySide中,您必须明确请求它:

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

这是一个更好的设计选择,我想说,因为PyQt行为通常会导致错误,如果你忘记即使你没有要求它也会发送默认值。一个明显比隐含更好的案例......