ドキュメンテーション

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

Knob のプロパティ

ノブの外観と動作の制御

ノブは、装置の制御ノブを表す UI コンポーネントであり、ユーザーはそれを調整して値を制御できます。プロパティがノブの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

uf = uifigure;
k = uiknob(uf);
k.Value = 45;

ノブ

すべて展開する

ノブの値。数値として指定します。この数値は、Limits に指定された範囲内になければなりません。

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

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

たとえば、Limits[0 100] で、Value プロパティが 20 だとします。Limits プロパティが [50 100] に変更されると、Value50 に更新されます。

目盛り

すべて展開する

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

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

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

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

大目盛りの作成モード。次のいずれかとして指定します。

  • 'auto' — MATLAB が大目盛りの配置を決定します。

  • 'manual' — ユーザーが MajorTicks 値の配列を指定します。

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

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

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

大目盛りのラベルのモード。次のいずれかとして指定します。

  • 'auto' — 大目盛りのラベルを MATLAB で自動で指定します。

  • 'manual' — 大目盛りのラベルを MajorTickLabels プロパティを使用して指定します。

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

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

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

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

小目盛りの作成モード。次のいずれかとして指定します。

  • 'auto' — MATLAB が小目盛りの配置を決定します。MATLAB は、スケールの範囲を超える大目盛りに対して小目盛りを生成しません。Limits プロパティ値が変更された場合、MATLAB は小目盛りを更新してフル スケール範囲に配置します (それに従って MinorTicks プロパティが更新される)。

  • 'manual' — ユーザーが MinorTicks プロパティの数値配列を指定します。MinorTicks プロパティ値は、サイズや固有の内容を変更しません。

フォント

すべて展開する

フォント名。システムでサポートされているフォント名として指定します。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。

指定したフォントが利用できない場合、MATLAB は、アプリが実行中のシステムで利用可能なフォントから最もよく一致するフォントを使用します。

例: 'Arial'

フォント サイズ。正の数値として指定します。測定単位はピクセルです。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。

例: 14

フォントの太さ。次のいずれかの値として指定します。

  • 'normal' — 各フォントで定義されている既定の太さ

  • 'bold''normal' よりも太い文字

すべてのフォントに太字フォントがあるとは限りません。そのため、太字フォントを指定しても標準フォントの太さと変わらない場合があります。

フォントの角度。'normal' または 'italic' として指定します。このプロパティを italic に設定すると、アプリ ユーザーのシステムで利用できる場合にイタリック フォントが選択されます。

フォントの色。RGB 3 成分、16 進数カラー コードまたは表にリストされたオプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

対話機能

すべて展開する

ノブの可視性。'on' または 'off' として指定します。Visible プロパティは、画面にノブを表示するかどうかを決定します。Visible プロパティが 'off' に設定されている場合、ノブ全体が非表示になりますが、その場合でもプロパティを指定したりアクセスしたりできます。

アプリの起動を高速化するには、起動時に表示する必要のないすべてのコンポーネントの Visible プロパティを 'off' に設定します。

ノブの操作可能状態。'on' または 'off' として指定します。

  • このプロパティを 'on' に設定した場合、アプリ ユーザーはノブを回すことができます。

  • このプロパティを 'off' に設定した場合、ノブの外観はグレー表示されます。これは、アプリ ユーザーがノブを回すことができず、ノブがコールバックをトリガーしないことを示します。

ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

位置

すべて展開する

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

要素説明
left親コンテナーの内側左端からノブの外側左端までの距離
bottom親コンテナーの内側下端からノブの外側下端までの距離
width目盛りとラベルを除いたノブの外側の右端と左端の間の距離
height目盛りとラベルを除いたノブの外側の上端と下端の間の距離

すべての測定単位はピクセルです。縦横比の制約があるため、ノブの高さと幅を相互に独立して変更することはできません。ノブのサイズを大きくするには、Position(3:4) = [width height] を使用して幅と高さを設定します。

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

例: [100 200 60 60

目盛りと目盛りラベルを除いたノブの内側の位置とサイズ。ベクトル [left bottom width height] として指定します。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。このプロパティ値は、Position プロパティと同一です。

このプロパティは読み取り専用です。

目盛りと目盛りラベルを含めたノブの外側の位置とサイズ。ベクトル [left bottom width height] として指定します。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。

レイアウト オプション。GridLayoutOptions オブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptions オブジェクトの Row プロパティおよび Column プロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。

たとえば、以下のコードは、ノブをその親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]);
k = uiknob(g);
k.Layout.Row = 3;
k.Layout.Column = 2;

ノブが複数の行または列にまたがるようにするには、Row または Column プロパティを 2 要素ベクトルとして指定します。たとえば、次のノブは 2 列目から 3 列目にまたがります。

k.Layout.Column = [2 3];

コールバック

すべて展開する

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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'

Knob オブジェクトの Value プロパティは、アプリ ユーザーがノブを離すまで更新されません。このため、ノブが回っている間の値を取得するには、ValueChangingData オブジェクトの Value プロパティをコードで取得しなければなりません。

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

  • アプリ ユーザーがノブの値をクリックした場合、コールバックが 1 回実行されます。たとえば、ノブが 1.0 にあるときにアプリ ユーザーが 1.1 をシングルクリックすると、コールバックが実行されます。

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

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

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on' または 'off' として指定します。Interruptible プロパティは実行中のコールバックが割り込み可能かどうかを決定します。

次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバック (がある場合) に割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込み可能かどうかを決定します。Interruptible プロパティは次の 2 つの値をとることができます。

  • 'on' — 他のコールバックがオブジェクトのコールバックに割り込むことを許可します。割り込みは、drawnowfigureuifiguregetframewaitforpause コマンドなどの、MATLAB が次にキューを処理するポイントで発生します。

    • 実行中のコールバックにこれらのいずれかのコマンドが含まれている場合、MATLAB はそのポイントでコールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了すると、MATLAB は実行中だったコールバックの実行を再開します。

    • 実行中のコールバックにこれらのコマンドが含まれていない場合、MATLAB はそのコールバックの実行を割り込みなしで完了します。

  • 'off' — 割り込みの試行をすべてブロックします。割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、その割り込みコールバックを破棄するかキューに入れるかを決定します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックが DeleteFcnCloseRequestFcn または SizeChangedFcn の各コールバックの場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数 waitfor を現在実行している場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • Timer オブジェクトは、Interruptible プロパティ値にかかわらず、スケジュールに従って実行されます。

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gca コマンドや gcf コマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバックに割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込みを許可するかどうかを決定します。割り込みが許可されない場合は、割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、そのコールバックを破棄するかキューに入れるかを決定します。BusyAction プロパティは次の値を取ることができます。

  • 'queue' — 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel' — 割り込みコールバックを実行しません。

このプロパティは読み取り専用です。

削除状態。'off' または 'on' として返されます。MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。

親/子

すべて展開する

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

オブジェクト ハンドルの可視性。'on''callback' または 'off' として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、getfindobjclf および close が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。

HandleVisibility の値説明
'on' オブジェクトは常に参照できます。
'callback'オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。
'off'オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。

識別子

すべて展開する

このプロパティは読み取り専用です。

グラフィックス オブジェクトのタイプ。'uiknob' として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

参考

関数

R2016a で導入