Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uislider

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

説明

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

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

sld = uislider(___,Name,Value) は、1 つ以上の名前と値の引数を使用して、Slider プロパティを指定します。たとえば、uislider("Value",50) は値 50 を指定してスライダーを作成します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

UI Figure 内にスライダー コンポーネントを作成します。

fig = uifigure;
sld = uislider(fig);

Figure contains an object of type uislider.

UI Figure 内に垂直スライダーを作成します。

fig = uifigure;
sld = uislider(fig,"Orientation","vertical");

Figure contains an object of type uislider.

UI Figure 内にスライダーを作成します。スライダーの値を 50 に設定します。

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

Figure contains an object of type uislider.

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

limits = sld.Limits
limits = 1×2

     0   100

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

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

Figure contains an object of type uislider.

UI Figure 内にスライダーを作成します。

fig = uifigure;
sld = uislider(fig);

Figure contains an object of type uislider.

スライダーの外観をカスタマイズします。温度 (華氏の度数) に対応するように範囲および大目盛りを更新して、小目盛りを削除します。

sld.Limits = [32 212];
sld.MajorTicks = [32 100 150 212];
sld.MajorTickLabels = sld.MajorTicks + "°F";
sld.MinorTicks = [];

Figure contains an object of type uislider.

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

sliderApp.m という名前のファイルで、アプリを実装する関数を作成します。

  • UI Figure およびグリッド レイアウト マネージャーを作成してアプリをレイアウトします。

  • グリッド レイアウト マネージャーでゲージとスライダーを作成します。

  • スライダーの値に一致するようにゲージの値を変更する updateGauge という名前のコールバック関数を作成し、その関数をスライダーの ValueChangedFcn コールバック プロパティに割り当てます。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function sliderApp
fig = uifigure("Position",[100 100 300 250]);
g = uigridlayout(fig);
g.RowHeight = {'1x','fit'};
g.ColumnWidth = {'1x','fit','1x'};

cg = uigauge(g);
cg.Layout.Row = 1;
cg.Layout.Column = [1 3];

sld = uislider(g, ...
    "ValueChangedFcn",@(src,event)updateGauge(src,event,cg));
sld.Layout.Row = 2;
sld.Layout.Column = 2;
end

function updateGauge(src,event,cg)
cg.Value = event.Value;
end

関数 sliderApp を実行し、スライダーのつまみを移動します。つまみを離すと、ゲージの値が更新されます。

sliderApp

Figure contains an object of type uigridlayout.

スライダーとゲージをもつアプリを作成します。アプリ ユーザーがスライダーのつまみを移動すると、ゲージの針がそのスライダー値を反映するように即時に更新されます。

sliderApp2.m という名前のファイルで、アプリを実装する関数を作成します。

  • UI Figure およびグリッド レイアウト マネージャーを作成してアプリをレイアウトします。

  • グリッド レイアウト マネージャーでゲージとスライダーを作成します。

  • スライダーの値に一致するようにゲージの値を変更する updateGauge という名前のコールバック関数を作成し、その関数をスライダーの ValueChangingFcn コールバック プロパティに割り当てます。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function sliderApp2
fig = uifigure("Position",[100 100 300 250]);
g = uigridlayout(fig);
g.RowHeight = {'1x','fit'};
g.ColumnWidth = {'1x','fit','1x'};

cg = uigauge(g);
cg.Layout.Row = 1;
cg.Layout.Column = [1 3];

sld = uislider(g, ...
    "ValueChangingFcn",@(src,event)updateGauge(src,event,cg));
sld.Layout.Row = 2;
sld.Layout.Column = 2;
end

function updateGauge(src,event,cg)
cg.Value = event.Value;
end

関数 sliderApp2 を実行し、スライダーのつまみを移動します。スライダーのつまみをドラッグすると、それに合わせてゲージの針が移動します。

sliderApp2

Figure contains an object of type uigridlayout.

入力引数

すべて折りたたむ

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

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

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

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

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

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

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

データ型: double

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

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

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

データ型: double

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

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

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

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

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

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

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

メモ

MajorTicksMode'auto' の場合に MajorTickLabels を設定すると、予期しない結果になることがあります。この動作を回避するには、MajorTicksMode'manual' に設定し、MajorTicks の値を手動で指定してから MajorTickLabels を設定します。

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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 プロパティをコードで取得しなければなりません。

メモ

Slider オブジェクトの Value プロパティをそれ自体の ValueChangingFcn コールバック内から更新しないでください。予期しない動作を引き起こす可能性があります。ユーザー入力に応じてスライダーの値を更新するには、代わりに ValueChangedFcn コールバックを使用します。

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 で導入

参考

関数

プロパティ

ツール