GUIDEのスライダ​ーを固定間隔で動かす​にはどうすればよいで​すか?

7 次查看(过去 30 天)
GUIDE にて、Uicontrol オブジェクトのスライダー(slider) を配置しています。スライダーで、最小値 1、最大値 16 に設定したときに、一回の選択で "1" だけ動かすようにしたいです。
デフォルトの設定では、整数での設定ができません。
 

采纳的回答

MathWorks Support Team
整数の値で移動するスライダーを作成するには、「スライダーの両端の矢印を選択したとき」と「スライダー自体をドラッグして、スライダーを動かしたとき」の両方で、スライダーの Position プロパティを整数に設定する必要があります。
具体的には、以下のように設定します。
まず、Uicontrol のスライダーの 'SliderStep' プロパティで、スライダーの変化量を設定します。ここで、スライダーを1単位だけ移動させるためには、
スライダーのステップサイズ = 1 /(MaxSliderValue-MinSliderValue)
で計算できますので、この例では1/(16-1) = 1/15 に設定します。
  さらに、確実にスライダーを固定ステップで移動させるには、コールバック関数で Position プロパティにてスライダーが示す値を取得後、四捨五入します。この新しい値をスライダーの Position プロパティに設定して、位置を更新します。
以下に例を示します。
 
function myslider
figure;
sld = uicontrol('Style', 'slider',...
'Min',1,'Max',16,'Value',8,...
'Units', 'Normalized',...
'Position', [0.3 0.48 0.4 0.04],...
'Callback', @print_val,...
'SliderStep', [1/15 1/15]);
function print_val(hObject,callbackdata)
% スライダーのコールバック関数
newval = hObject.Value; % スライダーの位置を取得
newval = round(newval); % 四捨五入して整数に変更
set(hObject, 'Value', newval); % 新しい値に更新
disp(['Slider moved to ' num2str(newval)]); % コマンドウィンドウに値を表示
end
end
 

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 対話型コントロールとコールバック 的更多信息

产品


版本

R2015a

Community Treasure Hunt

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

Start Hunting!