Нужно нажать кнопку дважды, чтобы обновить переменную в 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, которая ожидает закрытия фигуры или повторного вызова, вызванного обратными вызовами кнопок.