ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

uislider

スライダー コンポーネントの作成

説明

sld = uislider は、スライダーを新しい Figure ウィンドウ内に作成し、Slider オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

sld = uislider(parent) は、指定された親コンテナー内にスライダーを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

sld = uislider(___,Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して、Slider のプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

fig = uifigure;
sld = uislider(fig);

パネルを含む UI Figure ウィンドウを作成します。スライダーを作成し、パネル内での位置を指定します。

fig = uifigure;
pnl = uipanel(fig);
sld = uislider(pnl,'Position',[50 50 150 3]);

スライダーを作成します。Value プロパティを 50 に設定します。

fig = uifigure;
sld = uislider(fig,'Value',50);

現在のスライダーの範囲を調べます。

limits = sld.Limits
limits =

     0   100

スライダーの範囲を変更し、値を 35 に設定します。

sld.Limits = [-50 50];
sld.Value = 35;

スライダーとゲージを作成します。アプリ ユーザーがスライダーのつまみを移動してマウス ボタンを離すと、ゲージの針がそのスライダー値を反映します。

MATLAB パス上の sliderValue.m に次のコードを保存します。

次のコードは、スライダーとゲージを含むウィンドウを作成します。アプリ ユーザーがスライダーのつまみを移動すると、ValueChangedFcn コールバックはスライダー値を反映するようにゲージを更新します。

function slidervalue
% Create figure window and components

fig = uifigure('Position',[100 100 350 275]);

cg = uigauge(fig,'Position',[100 100 120 120]);

sld = uislider(fig,...
    'Position',[100 75 120 3],...
    'ValueChangedFcn',@(sld,event) updateGauge(sld,cg));

end

% Create ValueChangedFcn callback
function updateGauge(sld,cg)
cg.Value = sld.Value;
end

sliderValue を実行してからスライダーのつまみを移動します。マウス ボタンを離すと、円形ゲージの針がゲージ上の一致する値に移動します。

スライダーとゲージを作成します。アプリ ユーザーがスライダーのつまみを動かしている間、ゲージの針が変化するスライダー値を反映します。

次のコードは、スライダーとゲージを含むウィンドウを作成します。アプリ ユーザーがスライダーのつまみを動かしている間、ValueChangingFcn コールバックがスライダー値を反映するようにゲージを更新します。

MATLAB パス上の sliderChanging.m に次のコードを保存します。

function sliderchanging
% Create figure window and components

fig = uifigure('Position',[100 100 350 275]);

cg = uigauge(fig,'Position',[100 100 120 120]);

sld = uislider(fig,...
               'Position',[100 75 120 3],...
               'ValueChangingFcn',@(sld,event) sliderMoving(event,cg));

end

% Create ValueChangingFcn callback
function sliderMoving(event,cg)
cg.Value = event.Value;
end

sliderChanging を実行してからスライダーのつまみを移動します。スライダーの移動に合わせて、スライダー値を反映するように円形ゲージの針が動きます。

入力引数

すべて折りたたむ

親コンテナー。関数 uifigure を使用して作成された Figure、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。コンテナーが指定されていない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして使用される新しい Figure オブジェクトを作成します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'Limits',[0 50] は、スライダーの最小値を 0、スライダーの最大値を 50 に指定します。

以下にリストするプロパティは、利用できるプロパティの一部です。完全なリストについては、Slider のプロパティ を参照してください。

スライダーの値。数値として指定します。数値は、Limits プロパティ値で指定された範囲内になければなりません。

スライダーの最小値と最大値。2 要素の数値配列として指定します。最初の値は、2 番目の値より小さくなければなりません。

Limits を変更したことにより Value プロパティが新しい下限値より小さくなる場合、MATLAB は Value プロパティを新しい下限値に設定します。たとえば、Limits プロパティが [0 100] で、Value が 20 だとします。Limits[50 100] に変更された場合、MATLAB は Value プロパティを 50 に設定します。

同様に、Limits を変更したことにより、Value プロパティが新しい上限値より大きくなる場合、MATLAB は Value プロパティを新しい上限値に設定します。

大目盛りの位置。数値ベクトルまたは空のベクトルとして指定します。大目盛りを非表示にするには、このプロパティを空のベクトルとして指定します。

Limits プロパティの範囲外にある目盛り位置は表示されません。

MATLAB は重複する目盛りの値を削除します。ただし、大目盛りが小目盛りと同じ値である場合、大目盛りのみが表示されます。

MajorTicks プロパティを設定すると、MajorTicksMode プロパティが 'manual' に設定されます。

大目盛りのラベル。文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。目盛りのラベルを非表示にするには、このプロパティを空の cell 配列として指定します。特定の目盛りからラベルを削除するには、MajorTickLabels 配列の対応する要素を空の文字ベクトルまたは空の string スカラーとして指定します。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

配列 MajorTickLabels の長さがベクトル MajorTicks の長さと異なる場合、MATLAB は長い方の配列にある余分な要素を無視します。余分なラベルがある場合、そのラベルは無視されます。余分な目盛りがある場合、ラベルなしで表示されます。

MajorTickLabels を設定すると、MajorTickLabelsMode の値が 'manual' に変更されます。

値が変更されたときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは、スライダー上の異なる位置にサムを移動するときに実行されます。このコールバックは、スライダーの値がプログラムにより変更される場合には実行されません。

このコールバック関数は、ユーザーのスライダー操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.PreviousValue はスライダーの直前の値を返します。ValueChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、ValueChangedData オブジェクトのプロパティを示します。

プロパティ
Valueアプリ ユーザーによる最新操作の後のスライダーの値
PreviousValueアプリ ユーザーによる最新操作の前のスライダーの値
Sourceコールバックを実行するコンポーネント
EventName'ValueChanged'

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

値が変更中のコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは、アプリでスライダーに沿ってサムを動かすと実行されます。Value プロパティがプログラムにより変更される場合には実行されません。

このコールバックは、ユーザーのスライダー操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangingData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Value はスライダーの現在の値を返します。ValueChangingData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、ValueChangingData オブジェクトのプロパティを示します。

プロパティ
Valueアプリ ユーザーが操作中のスライダーの現在の値
Sourceコールバックを実行するコンポーネント
EventName'ValueChanging'

Slider オブジェクトの Value プロパティは、ユーザーがスライダーのつまみを離すまで更新されません。したがって、つまみが動いている間の値を取得するには、ValueChangingData オブジェクトの Value をコードで取得しなければなりません。

ValueChangingFcn コールバックは次のように実行されます。

  • アプリ ユーザーがスライダー値を 1 回クリックすると、コールバックが 1 回実行されます。たとえば、スライダーが 1.0 にあるときにアプリ ユーザーが 1.1 をシングルクリックすると、コールバックが 1 回実行されます。

  • アプリ ユーザーがスライダーをクリックして新しい位置にドラッグすると、コールバックが繰り返し実行されます。たとえば、スライダー値が 1.0 であり、アプリ ユーザーがサムをクリックして押したまま値 10.0 にドラッグすると、サムを離すまでコールバックが複数回実行されます。

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

目盛りと目盛りラベルを除いたスライダーの位置とサイズ。ベクトル [left bottom width height] として指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からスライダーの外側左端までの距離
bottom親コンテナーの内側下端からスライダーの外側下端までの距離
widthスライダーの外側の右端と左端の間の距離
heightスライダーの外側の上端と下端の間の距離

すべての測定単位はピクセルです。

Orientation プロパティ値が 'horizontal' の場合、スライダーの高さを変更することはできません。同様に、Orientation プロパティ値が 'vertical' の場合、スライダーの幅を変更することはできません。

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。

例: [100 200 60 60]

参考

関数

プロパティ

R2016a で導入