如何在 GUI matlab 中使对象成为当前对象?
How to make an object current in GUI matlab?
我构建了一个函数 "sng_figureslide",它会生成一个滑块,该滑块可以滑过所有已创建的图形。我必须单击 de 滑块才能使用箭头键控制它。
我想知道是否可以在调用函数时激活滑块对象,这样我就不必提前单击滑块。
function sng_figureslide
figh=findobj('type','figure');
figs=numel(figh);
% if there are one or zero figures, the slider does not appear
if figs > 1
sliderstep = 1/(figs-1);
else
return
end
fignumber = cell2mat(get(figh,'Number'));
sliderfignumber = max(fignumber) + 1;
figure(max(fignumber) +1)
set(gcf,'position',[360 190 560 36]);
set(gcf,'Toolbar','none');
a=annotation('textbox',[0.03 0.2 0.1 0.7],'String',num2str(figs));
uicontrol('Style', 'slider',...
'Min',1,'Max',figs,'Value',figs,...
'Position', [80 10 470 20],...
'Callback', {@slider1,figh,a,figs,fignumber,sliderfignumber},...
'SliderStep', [sliderstep sliderstep]);
end
function slider1(hObj,~,figh,a,figs,fignumber,sliderfignumber)
Val = round(get(hObj,'Value'));
set(a,'String',num2str(Val));
figure(figh(Val));
figure(sliderfignumber);
end
此外,我认为这个功能对很多人来说都非常有用,请放心使用。
创建 uicontrol 时保存它的句柄。然后将该句柄传回 uicontrol 函数。
h = uicontrol ( .... )
uicontrol ( h );
我构建了一个函数 "sng_figureslide",它会生成一个滑块,该滑块可以滑过所有已创建的图形。我必须单击 de 滑块才能使用箭头键控制它。
我想知道是否可以在调用函数时激活滑块对象,这样我就不必提前单击滑块。
function sng_figureslide
figh=findobj('type','figure');
figs=numel(figh);
% if there are one or zero figures, the slider does not appear
if figs > 1
sliderstep = 1/(figs-1);
else
return
end
fignumber = cell2mat(get(figh,'Number'));
sliderfignumber = max(fignumber) + 1;
figure(max(fignumber) +1)
set(gcf,'position',[360 190 560 36]);
set(gcf,'Toolbar','none');
a=annotation('textbox',[0.03 0.2 0.1 0.7],'String',num2str(figs));
uicontrol('Style', 'slider',...
'Min',1,'Max',figs,'Value',figs,...
'Position', [80 10 470 20],...
'Callback', {@slider1,figh,a,figs,fignumber,sliderfignumber},...
'SliderStep', [sliderstep sliderstep]);
end
function slider1(hObj,~,figh,a,figs,fignumber,sliderfignumber)
Val = round(get(hObj,'Value'));
set(a,'String',num2str(Val));
figure(figh(Val));
figure(sliderfignumber);
end
此外,我认为这个功能对很多人来说都非常有用,请放心使用。
创建 uicontrol 时保存它的句柄。然后将该句柄传回 uicontrol 函数。
h = uicontrol ( .... )
uicontrol ( h );