2017-10-20 14 views
1

kivy 위젯의 속성을 자식 위젯의 속성에 바인딩하고 싶습니다. 따라서 루트 위젯 특성이 변경되면 변경 사항은 하위 특성으로 전파됩니다. kivy의 다른 속성에 속성 바인딩

나는이 방법으로 그것을 시도 :

self._Child._MyProperty = self._MyProperty 

그것은 작동 ... 가끔. 그러나 때때로 그것은 작동하지 않습니다. 나는 그것이 작동하지 않는 이유와 그 이유와 이유를 알 수 없다. 나는뿐만 아니라 루트 위젯 방법에 바인딩 한 모든 경우에

:

self.bind(_MyPropert = self._MyPropertyChange) 

이 방법은 모든 경우에 호출되지만 때때로 변화는 자식 속성에 전파되지 않습니다.

는 매우 자연스러운 느낌이 경우에도 작동하지 않습니다

self.bind(_MyProperty = self._Child._MyProperty) 

그러나 kivy 언어로 내가 할 수있는 :

<RootWidget> 
    <ChildWidget> 
     _MyProperty: self.parent._MyProperty 

는하지만하지 KV-언어로 파이썬에서 그것을하고 싶은 .

누구나 아이디어를 가지고 있습니까? 올바르게 수행하는 방법은 무엇입니까?

답변

0

당신이 setter를 사용해야 다른 하나 개의 속성을 바인딩하려면 :

self.bind(_MyProperty=self._Child.setter('_MyProperty')) 
+0

감사합니다! 이것은 작동합니다! – CountVonCount