Python Kivy Как изменить событие on_press в классе Button
Вот пример кода
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
class a(App):
def build(self):
self.btn = Button(on_press=self.press)
return self.btn
def press(self, instance, **kwargs):
self.btn.bind(on_press=self.nothing)
print(1)
def nothing(self, *args, **kwargs):
print(2)
a().run()
Мне нужно, чтобы при нажатии на кнопку, у нее событие on_press изменилось, или чтобы она просто ничего не делала, но у меня выходит, что она вызывает сразу 2 функции. Как это лечить или что я делаю не так?
Ответы (1 шт):
Автор решения: Karlson21
→ Ссылка
Если я вас правильно понял, то 'перебиндить' кнопку можно так:
class MyApp(App):
def build(self):
self.btn = Button(text="click")
self.btn.bind(on_press=self.press)
return self.btn
def press(self, instance, **kwargs):
self.btn.unbind(on_press=self.press)
self.btn.bind(on_press=self.nothing)
print('press')
def nothing(self, *args, **kwargs):
print('nothing')
MyApp().run()