12

我在 MATLAB 2012a 中使用 GUIDE 创建了一个滑块小部件。我希望它控制一个显示图像的轴,其中滑块通过一系列图像。

我在 m 文件的一部分中为 Min、Max 和 SliderStep 设置了滑块的属性。

sliderMin = 1;
sliderMax = size(result); % this is variable
sliderStep = [1, 1]; % major and minor steps of 1

set(handles.slider, 'Min', sliderMin);
set(handles.slider, 'Max', sliderMax);
set(handles.slider, 'SliderStep', sliderStep);
set(handles.slider, 'Value', sliderMin); % set to beginning of sequence

在滑块回调中,我已验证 Min、Max 和 SliderStep 设置正确。

sliderMin = get(hObject, 'Min') % correct
sliderMax = get(hObject, 'Max') % correct
sliderStep = get(hObject, 'SliderStep') % correct
currentSliderStep = get(hObject, 'Value') % correct, 1 at start

但是,当我单击滑块的箭头时,我只在开始和结束之间跳转。每次将正确的 Min、Max、SliderStep 和 Value(尽管只有 1 或 sliderMax)打印到命令窗口。我无法以 1 为增量来查看序列内部的图像。

4

1 回答 1

13

实际滑块步长按范围缩放:以下ActualStep = SliderStep * (Max - Min)行应该可以解决您的问题:sliderStep = [1, 1] / (sliderMax - sliderMin). 您可能应该检查在此行之前您没有被零除。Max请注意,如果不大于,则滑块不会呈现Min

于 2012-05-04T15:58:07.193 回答