12

MATLAB2012aで​​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 に答える