Я новичок в программировании графического интерфейса MATLAB (использую GUIDE, извините), и у меня есть следующая проблема: графический интерфейс отображает на оси последовательность изображений, хранящуюся в массиве ячеек. У меня есть пара кнопок и ползунок для прокрутки последовательности. Чтобы получить «непрерывный слайдер», я использую прослушиватель, который работает, но создает некоторые проблемы:
1) Когда я нажимаю ползунок, создается фигура и в ней отображается первый кадр последовательности, но при перемещении ползунка последовательность отображается по оси моего графического интерфейса (что я и хочу) и фигура становится пустым. Кто-нибудь может сказать мне, почему эта фигура создана и как я могу ее избежать?
2) Как только я нажимаю кнопку ползунка и, таким образом, использую прослушиватель, все ручки внутри графического интерфейса не работают, поскольку Matlab не распознает их, и я застрял с функциональным ползунком/дисплеем, но я не могу использовать кнопки.
Любые идеи о том, почему это происходит? Вот код, который я использую в функции создания слайдера:
function slider2_Frame_Video_Callback(hObject, eventdata, handles)
hListener = addlistener(hObject,'ContinuousValueChange',@(a,b) slider2_Frame_Video_Callback(hObject, eventdata, handles)); % a and b are dummy arguments
guidata(hObject,handles)
В обратном вызове ползунка код выглядит так (в основном imshow на текущей оси):
axes(hAxis)
imshow(Movie{frame},'parent',hAxis);
drawnow
% Это тоже не работает, так как handles.edit_FrameNumber не распознается Matlab
set(handles.edit_FrameNumber, 'String', frame);
guidata(hObject,handles);
Любые подсказки приветствуются спасибо!