【问题标题】:Correct Usage of uiwait and uiresume in MATLAB App Designer在 MATLAB App Designer 中正确使用 uiwait 和 uiresume
【发布时间】:2020-10-09 01:48:58
【问题描述】:

我真的很困惑在哪里放置这两个命令 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

如果需要任何进一步的信息,请告诉我。

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    目前,我将其用作解决方法,而不是使用 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;
    

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多