st()接受1个位置参数,但给出了2个

时间:2018-11-05 12:18:32

标签: python kivy kivy-language

不具有按钮绑定功能 当我单击按钮窗口关闭时

错误

st () takes 1 positional argument but 2 were given

from kivy.uix.button import  Button
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class new(BoxLayout):
    def st(self):
        print("vllghh")
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

        self.bt=Button(text="njfhjgfg")
        self.add_widget(self.bt)
        self.bt.bind(on_press=self.st)
class am(App):
    def build(self):
        return new()
am().run()

1 个答案:

答案 0 :(得分:1)

看起来像Kivy以按钮实例作为唯一参数调用st回调,但是由于st是类new的方法,因此'self'参数被隐式传递作为第一个参数,使按钮实例成为第二个参数。尝试将st方法更改为:

    def st(self, instance):
        print("vllghh")