更改滑块跳动的大小以使鼠标单击滚动

时间:2019-01-27 07:33:58

标签: matlab user-interface configuration slider matlab-figure

当用户单击滑块的空白区域(滑动空间)时,滑块会跳转。尽管我已经设置了31个步长(通过设置滑块的步长),但是当鼠标单击滑块的空白时,仍然只有3个跳跃,这会产生较大的偏移[每次单击21 11 1个值]。

我想在单击滑块的空白区域时进行较小的移动/跳跃。图片解释了空白处并跳跃。我在滑块的设置中找不到设置此功能的任何选项。

我有以下设置

ihist=[0:0.0005:0.015];
colors=1:0.01:1.25;
handles.output = hObject;
% % Update slider1 value
guidata(hObject, handles);
maxSliderValue = length(ihist);
minSliderValue = 1;
theRange = maxSliderValue - minSliderValue;
steps = [1/theRange, 10/theRange];
set(handles.slider1, 'SliderStep', steps,'value',1);

由于这种情况下的总步数为31,因此滑块不应以3步/点击的速度完全移动。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可能误解了SliderStep设置的工作原理。从文档中引用:

  

滑块步长,指定为数组[minorstep majorstep]。当用户单击箭头按钮或滑块槽(滑块通道)时,此属性控制滑块值变化的幅度:

     
      
  • minorstep是滑块范围的一部分,当用户单击其中一个箭头按钮时,Value属性将增加或减少。

  •   
  • majorstep是滑块范围的一部分,当用户单击滑块槽时,Value属性将根据该范围增加或减少。

  •   

在您的示例中,[minorstep majorstep][1/theRange, 10/theRange](或数字上是[1/30 1/3]),这意味着您需要准确的(1/3)^-1 == 3点击才能遍历整个范围。如果您希望单击30(请注意,间隔比滑块位置|--|--|小1),则也应将majorstep更改为1/theRange