このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
uislider
スライダー コンポーネントの作成
説明
は、スライダーを新しい Figure ウィンドウ内に作成し、sld
= uisliderSlider
オブジェクトを返します。MATLAB® は関数 uifigure
を呼び出してこの Figure を作成します。
は、1 つ以上の名前と値の引数を使用して、sld
= uislider(___,Name,Value
)Slider
プロパティを指定します。たとえば、uislider("Value",50)
は値 50 を指定してスライダーを作成します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。
例
スライダーの作成
垂直スライダーの作成
スライダーのプロパティの設定とアクセス
UI Figure 内にスライダーを作成します。スライダーの値を 50 に設定します。
fig = uifigure;
sld = uislider(fig,"Value",50);
現在のスライダーの範囲を調べます。
limits = sld.Limits
limits = 1×2
0 100
スライダーの範囲を変更し、値を 35 に設定します。
sld.Limits = [-50 50]; sld.Value = 35;
スライダーの目盛りの構成
UI Figure 内にスライダーを作成します。
fig = uifigure; sld = uislider(fig);
スライダーの外観をカスタマイズします。温度 (華氏の度数) に対応するように範囲および大目盛りを更新して、小目盛りを削除します。
sld.Limits = [32 212];
sld.MajorTicks = [32 100 150 212];
sld.MajorTickLabels = sld.MajorTicks + "°F";
sld.MinorTicks = [];
移動後のスライダーのつまみに対するコードの応答
スライダーとゲージをもつアプリを作成します。アプリ ユーザーがスライダーのつまみを移動してマウス ボタンを離すと、ゲージの針がそのスライダー値を反映するように更新されます。
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
移動中のスライダーのつまみに対するコードの応答
スライダーとゲージをもつアプリを作成します。アプリ ユーザーがスライダーのつまみを移動すると、ゲージの針がそのスライダー値を反映するように即時に更新されます。
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
入力引数
parent
— 親コンテナー
Figure
オブジェクト (既定値) | Tab
オブジェクト | Panel
オブジェクト | ButtonGroup
オブジェクト | GridLayout
オブジェクト
親コンテナー。関数 uifigure
を使用して作成された Figure
オブジェクト、またはその子コンテナー (Tab
、Panel
、ButtonGroup
または 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 のプロパティ を参照してください。
Value
— スライダーの値
0 (既定値) | 数値
スライダーの値。数値として指定します。数値は、Limits
プロパティ値で指定された範囲内になければなりません。
データ型: double
Limits
— スライダーの最小値と最大値
[0 100] (既定値) | 2 要素数値配列
スライダーの最小値と最大値。2 要素の数値配列として指定します。最初の値は、2 番目の値より小さくなければなりません。
Limits
を変更したことにより Value
プロパティが新しい下限値より小さくなる場合、MATLAB は Value
プロパティを新しい下限値に設定します。たとえば、Limits
プロパティが [0 100]
で、Value
が 20 だとします。Limits
が [50 100]
に変更された場合、MATLAB は Value
プロパティを 50 に設定します。
同様に、Limits
を変更したことにより、Value
プロパティが新しい上限値より大きくなる場合、MATLAB は Value
プロパティを新しい上限値に設定します。
データ型: double
MajorTicks
— 大目盛りの位置
[0 20 40 60 80 100]
(既定値) | 数値ベクトル | []
大目盛りの位置。数値ベクトルまたは空のベクトルとして指定します。大目盛りを非表示にするには、このプロパティを空のベクトルとして指定します。
Limits
プロパティの範囲外にある目盛り位置は表示されません。
MATLAB は重複する目盛りの値を削除します。ただし、大目盛りが小目盛りと同じ値である場合、大目盛りのみが表示されます。
MajorTicks
プロパティを設定すると、MajorTicksMode
プロパティが 'manual'
に設定されます。
MajorTickLabels
— 大目盛りのラベル
{'0','20','40','60','80','100'}
(既定値) | 文字ベクトルの cell 配列 | string 配列 | {}
| ...
大目盛りのラベル。文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。目盛りのラベルを非表示にするには、このプロパティを空の cell 配列として指定します。特定の目盛りからラベルを削除するには、MajorTickLabels
配列の対応する要素を空の文字ベクトルまたは空の string スカラーとして指定します。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。
配列 MajorTickLabels
の長さがベクトル MajorTicks
の長さと異なる場合、MATLAB は長い方の配列にある余分な要素を無視します。余分なラベルがある場合、そのラベルは無視されます。余分な目盛りがある場合、ラベルなしで表示されます。
MajorTickLabels
を設定すると、MajorTickLabelsMode
の値が 'manual'
に変更されます。
メモ
MajorTicksMode
が 'auto'
の場合に MajorTickLabels
を設定すると、予期しない結果になることがあります。この動作を回避するには、MajorTicksMode
を 'manual'
に設定し、MajorTicks
の値を手動で指定してから MajorTickLabels
を設定します。
ValueChangedFcn
— 値が変更されたときのコールバック
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
値が変更されたときのコールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバックは、スライダー上の異なる位置にサムを移動するときに実行されます。このコールバックは、スライダーの値がプログラムにより変更される場合には実行されません。
このコールバック関数は、ユーザーのスライダー操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangedData
オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event
と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.PreviousValue
はスライダーの直前の値を返します。ValueChangedData
オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表に、ValueChangedData
オブジェクトのプロパティを示します。
プロパティ | 値 |
---|---|
Value | アプリ ユーザーによる最新操作の後のスライダーの値 |
PreviousValue | アプリ ユーザーによる最新操作の前のスライダーの値 |
Source | コールバックを実行するコンポーネント |
EventName | 'ValueChanged' |
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
ValueChangingFcn
— 値が変更中のコールバック
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
値が変更中のコールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである 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 のコールバックを参照してください。
Position
— スライダーの位置とサイズ
[100 100 150 3]
(既定値) | [left bottom width height]
目盛りと目盛りラベルを除いたスライダーの位置とサイズ。ベクトル [left bottom width height]
として指定します。次の表で、ベクトルの各要素について説明します。
要素 | 説明 |
---|---|
left | 親コンテナーの内側左端からスライダーの外側左端までの距離 |
bottom | 親コンテナーの内側下端からスライダーの外側下端までの距離 |
width | スライダーの外側の右端と左端の間の距離 |
height | スライダーの外側の上端と下端の間の距離 |
すべての測定単位はピクセルです。
Orientation
プロパティ値が 'horizontal'
の場合、スライダーの高さを変更することはできません。同様に、Orientation
プロパティ値が 'vertical'
の場合、スライダーの幅を変更することはできません。
Position
の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。
例: [100 200 60 60]
バージョン履歴
R2016a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)