【问题标题】:MATLAB GUI - How do I control actions in one window from another window?MATLAB GUI - 如何从另一个窗口控制一个窗口中的操作?
【发布时间】:2014-02-18 05:43:29
【问题描述】:

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

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

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

【问题讨论】:

  • 我发现我需要获取启动器的句柄。我找到的每一个解释都解释了如何使用 GUIDE 执行此操作,但我真的很想以编程方式创建它,但我似乎找不到可以让我到达那里的命令。

标签: matlab user-interface


【解决方案1】:

最简单的方法之一是使用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

【讨论】:

    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多