st () принимает 1 позиционный аргумент, но 2 были даны - PullRequest
0 голосов
/ 05 ноября 2018

функция без привязки с кнопкой при нажатии кнопки окно закрывается

ERROR

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 голосов
/ 05 ноября 2018

Похоже, что Kivy вызывает обратный вызов st с экземпляром кнопки в качестве единственного аргумента, но поскольку st является методом класса new, параметр "self" неявно передается в качестве первого аргумента, делая экземпляр кнопки второй аргумент. Попробуйте изменить st метод на:

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