Кнопка Matlab для продолжения - PullRequest
0 голосов
/ 18 мая 2018

Внутри моей основной функции я вызываю функцию, которая должна что-то сделать, прежде чем продолжить программу, и я хочу добавить кнопку, которая позволяет продолжить, если результаты верны, или снова запустить функцию, чтобы повторить вычисления.Я попытался таким образом добавить первую кнопку, которая позволяет продолжить программу

h1  = figure(1);
% plot stuff...
button = uicontrol('Parent', h1,'Style','pushbutton',...
         'Units','normalized',...
         'Position',[0.4 0.3 0.2 0.1],...
         'String','Display Difference',...
         'Callback',@button_callback);

function button_callback(hObject,eventdata)
    if get(hObject,'Value') == 0
        %do nothing
    else
        return
    end
end

, но не работает, потому что программа продолжается и без ее нажатия.Чего мне не хватает?

1 Ответ

0 голосов
/ 18 мая 2018

Вы должны явно сказать Matlab остановиться и ждать ввода пользователя.Вы можете сделать это, используя команду uiwait

Таким образом, код будет (даже если я его не проверял):

h1  = figure(1);
% plot stuff...
button = uicontrol('Parent', h1,'Style','pushbutton',...
         'Units','normalized',...
         'Position',[0.4 0.3 0.2 0.1],...
         'String','Display Difference',...
         'Callback',@button_callback);
uiwait(h1);

function button_callback(hObject,eventdata)
    if get(hObject,'Value') == 0
        %do nothing
    else
        uiresume;
        return
    end
end

В Matlab естьтакже предопределенное диалоговое окно , которое вы можете использовать для этой цели.

...