Заставить matlab gui обновить середину управления пользовательским интерфейсом - PullRequest
10 голосов
/ 25 августа 2010

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

set(handles.lblStatus,'String','Processing...')
%function that takes a long time
set(handles.lblStatus,'String','Done')

Поскольку MATLAB не обновляет графический интерфейс во время функции обратного вызова, пользователь всегда видит «Готово» только после длительного периода ожидания и никогда не видит «Обработка». Я попытался добавить guidata(hObject, handles) после первого набора, надеясь, что это заставит экран обновиться, но это не так.

Ответы [ 2 ]

16 голосов
/ 25 августа 2010

Попробуйте позвонить РИСУНОК .

set(handles.lblStatus,'String','Processing...')
drawnow
%function that takes a long time
set(handles.lblStatus,'String','Done')
0 голосов
/ 25 августа 2010

Я полагаю, что в Matlab есть функция drawnow .

drawnow завершает ожидающие события рисования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...