Правильное использование uiwait и uiresume в MATLAB App Designer - PullRequest
0 голосов
/ 19 июня 2020

Я действительно не понимаю, где разместить обе команды uiwait и uiresume

Я использую конструктор приложений в 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 в конце этой функции обратного вызова кнопки.

Сообщите мне, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 20 июня 2020

На данный момент я использую это как обходной путь вместо использования 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...