Я пытаюсь создать простой графический интерфейс в Matlab, чтобы показать серию изображений с панелью инструментов, чтобы обеспечить основные функции, связанные с текущим изображением. Но я заметил, что вызов «imshow» вызывает исчезновение пользовательской панели инструментов в окне рисунка. Любая идея, как изменить поведение, чтобы панель инструментов сохранялась? Или на него не влияет вызов «imshow»?Пользовательская панель инструментов исчезает с вызовом imshow
Соответствующий код:
% create viewer window
win_viewer = figure('Visible', 'on', 'Name', 'Sample', ...
'Position', [0 0 200 200], 'NumberTitle', 'off', 'Toolbar', ...
'none', 'MenuBar', 'none', 'Resize', 'off', 'Color', ...
[0 0 0]);
gui_toolbar = uitoolbar('Parent', win_viewer);
% add save button
icons = load('icons.mat');
gui_save = uipushtool('Parent', gui_toolbar, 'CData', icons.disk{1}, ...
'ClickedCallback', {@cb_saveImage}, 'TooltipString', ...
'Save Movie');
% create axes
win_axes = axes('Parent', win_viewer);
axis off;
% this is called multiple times
imshow(im, 'Parent', win_axes, 'Border', 'tight');
imshow(im, 'Parent', win_axes, 'Border', 'tight');
До "imshow" вызова на панели инструментов появляется и работает, как ожидалось. Но как только изображение будет показано, панель инструментов исчезнет.
Редактировать: Я просто играл с ним немного, и это только последующие вызовы «imshow», которые немного заставляют панель инструментов. Я обновляю код для двух вызовов, чтобы подчеркнуть это.
Он остается в моей системе (R2014b), но, возможно, вы можете попытаться проверить дескриптор панели инструментов 'gui_toolbar.isvalid', чтобы убедиться, что это просто не видно, и в этом случае вы можете снова включить его. – chappjc
Также убедитесь, что свойство «WindowStyle» фигуры НЕ установлено в «модальный»: проверьте раздел «советы» здесь: http://www.mathworks.com/help/matlab/ref/uitoolbar.html –
Спасибо для предложений. Я тоже использую R2014b, но понял, что это только второй вызов imshow, который заставляет панель исчезнуть (я уточнил, что в моем вопросе). «Isvalid» становится ложным при последующем вызове «imshow», и доступ к другим свойствам панели инструментов приводит к ошибке «удаленный объект». Окно не является модальным. –