我使用这个例子作为指导来构建一个复选框按钮集;但是,它不适合我。 在类中,我有一个由按钮组成的函数:
check = CheckButtons(rax,('Button 1', 'Button 2', 'Button 3'), (True,False,False))
那么我在一个类中有这个函数。。。它看起来像:
^{pr2}$在同一个类中的另一个方法中,我试图用以下命令调用它。。。在
self.check.on_clicked(self.clickButtons())
从本网站: http://matplotlib.org/examples/widgets/check_buttons.html
matplotlib按钮页面状态:
on_clicked(func) When the button is clicked, call func with button label
A connection id is returned which can be used to disconnect
但是,我目前的错误是:
TypeError: clickButtons() takes exactly 2 arguments (1 given)
有人能给我解释一下发生了什么事。。。我怎么知道是哪个按钮被按下了? 提前谢谢。在
函数
check.on_clicked
用于注册单击复选框时的回调。您需要将它作为参数传递给它一个接受一个参数label
的函数对象。您要使用的语法是:这里有两件重要的事情需要理解。首先,在Python中,所有的东西都是一个对象。函数只是碰巧具有属性}是一个对象,它作为一个接受一个参数的函数。在
__call__
的对象。第二,当你将一个成员函数绑定到一个类的实例时,实例对象是隐式的第一个参数,因此{当您调用},使用调用结果
check.on_clicked(self.clickButtons())
时,您是在说“调用对象check
上的函数{self.clickButtons()
作为参数”。对clickButtons
的调用抛出您看到的错误,因为它需要2个参数(隐式self
和label
),而您只使用一个参数(隐式self
)调用它。在如果您有一个带有函数
^{pr2}$f(self,b)
的类A
,并且在A
的a
中,下面两个是等价的相关问题 更多 >
编程相关推荐