【问题标题】:Changing the size of slider jumps for mouse click scrolls更改鼠标单击滚动的滑块跳跃大小
【发布时间】:2019-06-20 12:18:20
【问题描述】:

当用户点击滑块的空白处(滑动空间)时,滑块会跳动。虽然我已经设置了 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 步/单击中完全移动。

【问题讨论】:

  • 你想让它做什么?您说有 31 个“小”步骤,并且还在 SliderStep 中指定大步骤(即单击空白区域时会发生什么)大 10 倍(所以 1/301/3) - 因此,点击空白区域 3 次正是完全移动它所需要的。 “总共 3 次点击应该是 31”是完全错误的。如果您想在每次点击后更改大步长(例如 1/3 -> 1/15 -> 1/30,或任何其他规则),则只需在回调中设置 StepSize

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


【解决方案1】:

您可能误解了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

【讨论】:

  • 非常感谢,之前我完全误解并浪费了这么多时间。再次非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多