Нужно нажать кнопку дважды, чтобы обновить переменную в MATLAB GUI

У меня есть следующий код как часть моего кода GUI MATLAB:

k = waitforbuttonpress;
if k==0               
   if strcmp(get(handles.YESNO,'String'),'Y')

        hint = 1;
    else
        hint = 0;
    end                
else
    hint = 0;
end

Я жду, пока пользователь нажмет одну из двух кнопок YES или NO. Внутри каждого из этих обратных вызовов я обновляю переменную handles.YESNO как set(handles.YESNO,'String','Y'); или же set(handles.YESNO,'String','N'); соответственно.

Когда я запускаю свой графический интерфейс MATLAB, мне нужно дважды нажать кнопку YES, чтобы значение вступило в силу. Какие-нибудь советы / подсказки, чтобы преодолеть эту проблему?

1 ответ

Решение

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

Другие вопросы по тегам