我正在尝试在Matlab中创建一个简单的GUI脚本来显示一系列图像,其中一个工具栏提供与当前图像相关的基本功能。但我注意到调用“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”导致工具栏有点乱。我更新代码以进行两次调用以强调这一点。
答案 0 :(得分:0)
在使用 imshow 之前,请尝试将工具栏的HandleVisibility
属性设置为off
。