1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| function slider_gui2
previous_val = 0;
val = 0;
fh = figure('Position',[250 250 350 350]);
sh = uicontrol(fh, ...
'Style','slider',...
'Max',100, ...
'Min',0, ...
'Value',25,...
'SliderStep',[0.05 0.2],...
'Position',[300 25 20 300],...
'Callback',@slider_callback,...
'userdata',previous_val,...
'tag','sh');
eth = uicontrol(fh, ...
'Style','edit',...
'String',num2str(get(sh,'Value')),...
'Position',[30 175 240 20],...
'Callback',@edittext_callback,...
'tag','eth');
sth = uicontrol(fh, ...
'Style','text',...
'String','Enter a value or click the slider.',...
'Position',[30 215 240 20]);
function slider_callback(hObject,eventdata)
eth=findobj('tag','eth');
previous_val = get(hObject,'userdata');
val = get(hObject,'Value');
set(hObject,'userdata',val);
set(eth,'String',num2str(val));
sprintf('You moved the slider %.1f units.',abs(val - previous_val))
function edittext_callback(hObject,eventdata)
sh=findobj('tag','sh');
previous_val = get(sh,'userdata');
val = str2double(get(hObject,'String'))
if isnumeric(val)
if val>=get(sh,'min') & val<=get(sh,'max')
set(sh,'Value',val);
set(sh,'userdata',val);
sprintf('You moved the slider %.1f units.',abs(val - previous_val))
end
end |
Partager