GUI slider value change when majorstep is changed from default?

Hello,
i experienced a very strange behaviour of GUI (made with GUIDE) sliders, If I change the major step of a vertical slider, e.g. 0.02 and the minor step is 0.01, the value of the slider changes from 0 to 0.08. The inspector in guide shows 0 for the value, but the thumbbar of the slider is not at the bottommost position. If i start the GUI, the thumbbar is still at the same position, and if i check the value of the slider, it is 0.08 instead of 0.
Test it with a blank gui, add a vertical slider:
  • max: 1.0
  • min: 0.0
  • sliderstep: [0.01,0.02]
  • x: 0.01
  • y: 0.02
  • value: 0.0
when you start the gui, the slider is value is not 0.0

6 comentarios

Jan
Jan el 14 de En. de 2013
Editada: Jan el 14 de En. de 2013
Are you talking about GUIDE or about creating the GUI programmatically? How and where do you define the initial value?
i make the GUI with GUIDE, sorry i forgot to mention that
Works fine for me...
I opened a new blank GUIDE gui. Added a slider, made the settings you did and ran it with no wierdness.
R2012b, Win7 Sp1 x64...
To be sure, I added disp(get(hObject,'Value')) to the createFcn and callback and saw only expected results
I tested on a win7 and an xp machine, both r2012b, no difference.
in GUIDE, the position of the slider changes immediatly as i modify the majorsliderstep, but the value is still 0.0 in the inspector.
with default settings: http://i48.tinypic.com/111hspd.jpg
after changing sliderstep: http://i45.tinypic.com/35250rr.jpg
Jing
Jing el 16 de En. de 2013
Editada: Jing el 16 de En. de 2013
This seems to happen only when the major step is smaller than the default one and it's a vertical slider. I can't reproduce this with a horizontal slider.

Iniciar sesión para comentar.

Respuestas (3)

Azzi Abdelmalek
Azzi Abdelmalek el 14 de En. de 2013
Editada: Azzi Abdelmalek el 14 de En. de 2013
% In your opening function insert
% slider1 is your slider's tag
set(handles.slider1,'value',0,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])

4 comentarios

I already tried that, and it has no effect. I can see that the slider is not at 0 in guide, i dont even have to run the gui. I guess this is a bug in matlab.
Check if you are not running different files, and be sure they are in your working folder.
Gaszton
Gaszton el 14 de En. de 2013
Editada: Gaszton el 14 de En. de 2013
Thank you, i am not a newbie you can try to make such a slider with guide, and see how it behaves.
You are right, I'am getting the same problem, which I can't explain

Iniciar sesión para comentar.

Try this in this order
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])
set(handles.slider1,'value',0)
%or
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02],'value',0)
Image Analyst
Image Analyst el 15 de En. de 2013
Editada: Image Analyst el 15 de En. de 2013
I'm not able to reproduce. I displayed the value in the movement callback and it was exactly as expected: 0.01 after the first small click, and incrementing by 0.01 or 0.02 depending on where in the slider you clicked.
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject handle to slider1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider
% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
sliderValue = get(hObject,'Value') % Spit value out to command line.
return;
The thumbbar of the slider also does not move when I change the step values. Since the value is 0 it stays slammed up against one side. I'm running R2012b 64 bit on Windows 7.

9 comentarios

I A, How did you set the parameters? when I set the parameter manually, using Inspector Uicontrol, it works fine, It works also when I set
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])
set(handles.slider1,'value',0)
But when I switch the order
set(handles.slider1,'value',0)
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])
The problem occurred (I am using Matlab 2011b on Windows 7)
I did it with property inspector in GUIDE. If you do it there, you don't need to also do it in the OpenFcn function, though I don't think it should hurt. If you are doing it somewhere in code, is the slider actually displayed at that point? Or is it still now shown yet and in the process of creating the GUI for initial display? I think I remember in the past where sometimes I couldn't do things if the control wasn't displayed yet.
I know, I'am just trying to find what is causing the problem. Try
set(handles.slider1,'value',0)
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])
that causes the problem
Gaszton
Gaszton el 16 de En. de 2013
Editada: Gaszton el 16 de En. de 2013
Thank you for your efforts, i am using the inspector in guide to modify the slider properties. see this screenshots please:
with default settings: http://i48.tinypic.com/111hspd.jpg
after changing sliderstep: http://i45.tinypic.com/35250rr.jpg
I tried forcing a 0 value at the start (openfcn), but that had no effect.
Have you tried to do it in this order?
set(handles.slider1,'Min',0,'Max',1,'Sliderstep',[0.01,0.02])
set(handles.slider1,'value',0)
Also, if you did it in the inspector, you don't need it to do it in open function.
Gaszton
Gaszton el 16 de En. de 2013
Editada: Gaszton el 16 de En. de 2013
of course, i know that
i tried to force 0 value both in the opening and in the creationFcn, doesnot matter
What happens if you set the value to 1 at first?
with value set to 1, it works fine, starts with value 1
So would this be a work aorund?
set(handles.slider1, 'value', 1);
drawnow;
set(handles.slider1, 'value', 0);

Iniciar sesión para comentar.

Categorías

Más información sobre Debugging and Analysis en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 14 de En. de 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by