簡體   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