在MATLAB中与事件和监听器交互

时间:2011-02-23 11:20:20

标签: matlab

我想编写正交的GUI代码。假设我有一个圆形类和一个方形类,他们需要进行交互。现在,为了使圆形和方形相互通信 - 比如圆形对象向方形对象发送消息,我会使用类似square_obj.listen_for_circle(circle_obj)的内容,其中listen_for_circle是实现addlistener的方法。

这对我来说是一个问题,因为现在这两个对象是链接的 - 从我的代码中删除一个对象会破坏它。我想要做的是circle_obj能够广播全局消息'CIRCLE_EVENT'。另外,square_obj将监听类型为'CIRCLE_EVENT'的全局消息广播,并在听到事件时执行某些操作。(啊,现在这些对象在代码库中没有相互链接!)

这在MATLAB中是可行的还是合理的? (或许我只是疯了)。 一如既往,建议非常感谢。

1 个答案:

答案 0 :(得分:3)

我不确定为什么 addlistener 对你来说有问题。它基本上只是添加了一个事件监听器,如果删除了事件原点对象(圆圈),它就不会做任何事情。

或者,您可以使用 event.listener handle.listener 。它们没有文档但运行良好,并且在Matlab代码库(m文件)中被广泛使用。请参阅此处的说明:http://UndocumentedMatlab.com/blog/continuous-slider-callback/#Event_Listener