Ответ 1
Попробуйте вызвать DRAWNOW.
set(handles.lblStatus,'String','Processing...')
drawnow
%function that takes a long time
set(handles.lblStatus,'String','Done')
Я работаю над gui, используя GUIDE в MATLAB, и из того, что я прочитал, похоже, что MATLAB постоянно обновляет элементы пользовательского интерфейса на основе таймера. Есть ли способ заставить его обновить элементы управления пользовательского интерфейса, чтобы я мог обновить его в середине функции? Прямо сейчас у меня есть функция, которая упрощает, что-то вроде
set(handles.lblStatus,'String','Processing...')
%function that takes a long time
set(handles.lblStatus,'String','Done')
Так как MATLAB не обновляет GUI во время функции обратного вызова, пользователь только когда-либо видит "Done" после долгого ожидания и никогда не видит "Обработка". Я попытался добавить guidata(hObject, handles)
после первого набора, надеясь, что это заставит экран обновляться, но это не так.
Попробуйте вызвать DRAWNOW.
set(handles.lblStatus,'String','Processing...')
drawnow
%function that takes a long time
set(handles.lblStatus,'String','Done')
Я считаю, что в matlab есть функция drawnow.
drawnow
завершает ожидающие события рисования