Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab,在子gui中更新对主gui对象的引用 处境_Matlab_User Interface - Fatal编程技术网

Matlab,在子gui中更新对主gui对象的引用 处境

Matlab,在子gui中更新对主gui对象的引用 处境,matlab,user-interface,Matlab,User Interface,我们有一个相当大的GUI项目在指南中。它通过不同的接口(串行、lan等)连接到硬件,为此我们有接口类。主gui选择接口对象,对其进行配置,并将其保存在handles.int中。不同的接口类实现了从一个公共基类继承的一组公共方法,因此GUI的所有功能都不需要知道我们拥有什么样的接口 我们也有subgui。当它们被打开并保存在子GUI自己的handles.int中时,它们会获得传递给它们的当前handles.int 问题 当我们在打开子gui时切换主gui中的接口时,子gui中的句柄仍然指向一个现在

我们有一个相当大的GUI项目在指南中。它通过不同的接口(串行、lan等)连接到硬件,为此我们有接口类。主gui选择接口对象,对其进行配置,并将其保存在
handles.int
中。不同的接口类实现了从一个公共基类继承的一组公共方法,因此GUI的所有功能都不需要知道我们拥有什么样的接口

我们也有subgui。当它们被打开并保存在子GUI自己的
handles.int中时,它们会获得传递给它们的当前
handles.int

问题 当我们在打开子gui时切换主gui中的接口时,子gui中的句柄仍然指向一个现在不再活动的旧接口,当我们将handles.int更改为另一个对象时,它不会得到更新

我们要么需要在子GUI中有一个引用,当主函数中的it对象发生变化时,该引用会得到更新,要么需要让子GUI在每次从那里访问接口时更新其接口引用

我尝试过的解决方案 我们可以在每次访问界面时更新子GUI中的句柄,如下所示:

main\u handles=guidata(findobj('Tag','main\u gui');
main_handles.int.do_something();
然而,这意味着大量的重构,因为现有的GUI在所有地方都使用
handles.int

问题 有没有一种方法可以在实际回调之前,在子GUI中的每个按钮按下时执行单个回调?如果是这样,我们可以从该回调中的主GUI获取当前接口

我看到的另一个可能性是,每次切换接口时,从主gui中更新子gui中的接口引用


还有其他解决办法吗?有没有办法将主gui的
句柄.int
传递给子gui,这样当我们在主gui中更改它时,它会在子gui中自动更新?

如果您需要“每次按下按钮都执行一次回调”,请查看我在2016年发布的答案:@Rotem看起来很有希望,谢谢。我将对此进行调查。如果您需要“每次按下按钮都会执行一次回调”,请查看我在2016年发布的答案:@Rotem看起来很有希望,谢谢。我会调查的。