Kivy, wywołanie zdarzenia przy zmianie zawartości zmiennej.

0

Witam
Czytam o Properties i jest tam coś o zdarzeniach które można przypisać przy zmianie wartości zmiennej która jest przypisana do Property.
Ja widzę to tak, ale nie mogę znaleźć przykładu.

zmienna=NumericProperty(default=0)
zmienna.bind(on_change=function)

on_change to sobie tak wymyśliłem.
Czy jest taka możliwość?

Pozdrawiam
Radek Głębicki

0

Nie bindujesz callbacków na samej zmiennej, a na obiekcie EventDispatcher, który rozprowadza wszystkie zdarzenia. Propertisy same z siebie są bezużyteczne. Taki prosty przykład to:

from kivy.event import EventDispatcher
from kivy.properties import NumericProperty

def callback(instance, value):
    print(f'{instance}: value changed to {value}')


class MyEventDispatcher(EventDispatcher):
    some_property = NumericProperty(default=0)


ed = MyEventDispatcher()
ed.bind(some_property=callback)
ed.some_property = 12

Z reguły jednak zamiast używać EventDispatcher bezpośrednio używa się widgetów, które po nim dziedziczą. Przykłady były tutaj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1