如何解决避免对NumericProperty进行绑定递归
我需要在属性更改时调用的函数中更改属性。这称为递归。例如:
from kivy.app import App;
from kivy.uix.widget import Widget;
from kivy.uix.button import Button;
from kivy._event import EventDispatcher;
class test(Button,EventDispatcher):
def __init__(self):
super().__init__();
self.bind(size = self.change_width);
def change_width(self,instance,value):
print('im changed');
self.width-= 20;
t = test();
t.width = 120;
class testApp(App):
def build(self):
return t;
if __name__ == '__main__':
testApp().run();
当按钮的任何大小更改时,我需要减小此宽度。有什么方法可以避免递归吗?
解决方法
您可以通过在更改width
时关闭绑定来避免递归:
def change_width(self,instance,value):
print('im changed');
self.unbind(size=self.change_width);
self.width -= 20;
self.bind(size=self.change_width);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。