我想编写正交的GUI代码。假设我有一个圆形类和一个方形类,他们需要进行交互。现在,为了使圆形和方形相互通信 - 比如圆形对象向方形对象发送消息,我会使用类似square_obj.listen_for_circle(circle_obj)
的内容,其中listen_for_circle
是实现addlistener的方法。
这对我来说是一个问题,因为现在这两个对象是链接的 - 从我的代码中删除一个对象会破坏它。我想要做的是circle_obj能够广播全局消息'CIRCLE_EVENT'
。另外,square_obj将监听类型为'CIRCLE_EVENT'
的全局消息广播,并在听到事件时执行某些操作。(啊,现在这些对象在代码库中没有相互链接!)
这在MATLAB中是可行的还是合理的? (或许我只是疯了)。 一如既往,建议非常感谢。
答案 0 :(得分:3)
我不确定为什么 addlistener 对你来说有问题。它基本上只是添加了一个事件监听器,如果删除了事件原点对象(圆圈),它就不会做任何事情。
或者,您可以使用 event.listener 或 handle.listener 。它们没有文档但运行良好,并且在Matlab代码库(m文件)中被广泛使用。请参阅此处的说明:http://UndocumentedMatlab.com/blog/continuous-slider-callback/#Event_Listener