繁体   English   中英

在 MATLAB App Designer 中正确使用 uiwait 和 uiresume

[英]Correct Usage of uiwait and uiresume in MATLAB App Designer

我真的很困惑在哪里放置这两个命令uiwaituiresume

我在 matlab 中使用应用程序设计器。 我在代码中间有这个 GUI,所以为了让程序停止直到这个 GUI 完成,我正在使用这些命令。

我尝试将uiwait放在app startupFcn

        function startupFcn(app)
           uiwait(app.UIFigure)
        end

uiresume

        function UIFigureCloseRequest(app, event)
            uiresume(app.UIFigure)
            delete(app)
        end

但以错误结束

Error using getappdata
Value must be a handle.
Error in appApp/attachOncleanupToFigure (line 109)
            appdata = getappdata(fig);
Error in appApp/startApp (line 94)
                obj.attachOncleanupToFigure(appdesigner.internal.service.AppManagementService.getFigure(obj.AppHandle));
Error in appApp (line 48)
            startApp(obj)
Error in appinstall.internal.runapp>execute (line 116)
out = evalin('caller', [script ';']);
Error in appinstall.internal.runapp>runapp13a (line 95)
outobj = execute(fullfile(appinstalldir, [wrapperfile 'App.m']));
Error in appinstall.internal.runapp>preamble18b (line 60)
    appobj = runapp13a(appinstalldir);
Error in appinstall.internal.runapp (line 13)
    out = preamble18b(appinstalldir);
Error in matlab.apputil.run (line 45)
appinstall.internal.runapp(appName, appLocation);
Error in trail_uwait_uresume (line 7)
matlab.apputil.run('appAPP')

当我按下一个按钮时,我的 GUI 将关闭,因为我在该按钮回调closereq的末尾分配了 closereq。

让我知道是否需要任何进一步的信息。

现在,我将其用作解决方法,而不是使用 uiwait 和 uiresume

a = 150;
b = 200;
rolls =zeros(1)
APPINFO = matlab.apputil.install('./APP/app');
matlab.apputil.run('appAPP')  % GUI will return rolls
while isequal(rolls,zeros(1)) == 1
    pause   
end
c = a+ b + rolls;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM