MATLAB GUI - 如何从另一个窗口控制一个窗口中的操作?

时间:2014-01-27 11:41:27

标签: matlab user-interface

我有一个显示图表的GUI,它会启动一个“播放列表”窗口。当我在播放列表窗口中执行操作时,有没有办法在启动窗口中运行一个功能?

更清楚的是,如果我在播放列表窗口中添加文件,我希望列表中的第一个文件显示在启动窗口中,但我想通过启动窗口中的函数来实现,而不是将绘图句柄传递给播放列表窗口。

提前感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:2)

执行此操作的最简单方法之一是使用findobj。 这将查看图形对象,查找与提供的过滤条件匹配的图形对象。 由于现有数字的数量应该相对较少,因此也应该相当快。

假设您的发射器图有一些名称,您可以获得启动器图形处理 例如通过

launcherFig = findobj(0,'type','figure', 'name', <launcher-name>);

或者给你的lauchner数字Tag,你可以搜索:

% in your launcher-figure code:
launcherFig = figure('Tag', 'MyLauncher');

% and modify the search accordingly:
launcherFig = findobj(0, 'type', 'figure', 'Tag', 'MyLauncher');

而且,为了完整起见,虽然我不喜欢它们,但您可以使用global变量:

% in your launcher-figure code:
launcherFig = figure(...);
% store handle in the global variable:
global LauncherHandle;
LauncherHandle = launcherFig;

% no need for a search now anymore, just get the global variable:
global LauncherHandle