ドキュメンテーション

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

UIControl のプロパティ

ユーザー インターフェイス コントロールの外観と動作の制御

ここでは、GUIDE または関数 figure で作成されたアプリの UIControl オブジェクトに対して有効なプロパティを紹介しています。App Designer はアプリ構築のための推奨環境です。詳細については、GUIDE アプリから App Designer への移行を参照してください。

ユーザー インターフェイス コントロールは、ユーザーが操作できるボタンやスライダーなどのコンポーネントです。関数 uicontrol はユーザー インターフェイス コントロールを作成し、表示される前に必要なプロパティを設定します。プロパティ値を変更することによって、ユーザー インターフェイス コントロールの外観と動作を変更できます。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

f = figure;
b = uicontrol(f,'Style','pushbutton');
b.Position = [100 100 50 20];

コントロールのタイプ

すべて展開する

UIControl のスタイル。次の表の値として指定します。

Style の値説明
'pushbutton'マウス ボタンが離されるまで、押し下げられたままになるボタン。
'togglebutton'上がっているまたは押された状態の 2 つの状態があるボタン。トグル ボタンの状態はクリックするたびに変更されます。
'checkbox'オンまたはオフの 2 つの状態があるチェック ボックス。状態はユーザーがクリックしてその上でマウス ボタンを離すと変更されます。
'radiobutton'選択または選択解除の 2 つの状態があるボタン。ラジオ ボタンは関連するラジオ ボタンのグループ内で、互いに排他的になります。
'edit'編集可能なテキスト フィールド。
'text'スタティック テキスト フィールド。
'slider'ユーザーが横棒または縦棒に沿って押すボタン。ボタンの位置は指定された範囲内の値を示します。
'listbox'ユーザーが 1 つ以上の項目を選択できる項目のリスト。ポップアップ メニューとは異なり、リスト ボックスはクリックされても展開しません。
'popupmenu'クリックしたときに選択肢のリストが展開して表示される分離されたメニュー。折りたたまれると、現在の選択内容がメニューに表示されます。

現在の値。数値として指定します。Value プロパティは、次のような特定の uicontrol のステータスをクエリまたは変更するときに便利です。

uicontrol のスタイルValue プロパティの説明
'togglebutton'
  • 上: Value プロパティは Min プロパティの値と等価です。

  • 下: Value プロパティは Max プロパティの値と等価です。

'checkbox'
  • オフ: Value プロパティは Min プロパティの値に変更されます。

  • オン: Value プロパティは Max プロパティの値に変更されます。

'radiobutton'
  • 選択解除: Value プロパティは Min プロパティの値に変更されます。

  • 選択: Value プロパティは Max プロパティの値に変更されます。

'slider'Value プロパティは対応するスライダーの値と等価です。
'listbox'Value プロパティは、リスト ボックスで選択された項目に対応する配列インデックスと等価です。値 1 はリストの最初の項目に対応しています。
'popupmenu'Value プロパティは、ポップアップ メニューで選択された項目に対応する配列インデックスと等価です。値 1 はポップアップ メニューの最初の項目に対応しています。

最大値。数値として指定します。Max プロパティは、次のような特定の uicontrol の表示に影響します。

uicontrol のスタイルValue プロパティの説明
'togglebutton'トグル ボタンが押されていると、Value プロパティは Max プロパティの値に変更されます。
'checkbox'チェック ボックスをオンにすると、Value プロパティは Max プロパティの値に変更されます。
'radiobutton'ラジオ ボタンを選択すると、Value プロパティは Max プロパティの値に変更されます。
'edit'

エディット テキスト ボックスは、MaxMin > 1 である場合に複数行の入力を受け入れます。それ以外の場合、エディット テキスト ボックスは 1 行の入力を受け入れます。

MaxMin の絶対値は、入力できる行数には影響しません。この差が 1 より大きければ、エディット ボックスに任意の数の行を含めることができます。

'slider'Max プロパティ値はスライダーの最大値であり、Min プロパティ値より大きくなければなりません。
'listbox'Max プロパティ値は、ユーザーがリスト ボックス内の複数の項目を同時に選択できるかどうかを決定します。MaxMin > 1 の場合、ユーザーは複数の項目を同時に選択できます。それ以外の場合、ユーザーが複数の項目を同時に選択することはできません。Max および Min プロパティを設定して複数選択を許可する場合、Value プロパティ値はインデックスのベクトルにすることができます。

最小値。数値として指定します。Min プロパティは、次のような特定の uicontrol の表示に影響します。

uicontrol のスタイルValue プロパティの説明
'togglebutton'トグル ボタンが上がった状態のとき、Value プロパティは Min プロパティの値に変更されます。
'checkbox'チェック ボックスをオフにすると、Value プロパティは Min プロパティの値に変更されます。
'radiobutton'ラジオ ボタンを選択解除すると、Value プロパティは Min プロパティの値に変更されます。
'edit'

エディット テキスト ボックスは、MaxMin > 1 である場合に複数行の入力を受け入れます。それ以外の場合、エディット テキスト ボックスは 1 行の入力を受け入れます。

MaxMin の絶対値は、入力できる行数には影響しません。この差が 1 より大きければ、エディット ボックスに任意の数の行を含めることができます。

'slider'Min プロパティ値はスライダーの最小値であり、Max プロパティ値未満でなければなりません。
'listbox'Max プロパティ値は、ユーザーがリスト ボックス内の複数の項目を同時に選択できるかどうかを決定します。MaxMin > 1 の場合、ユーザーは複数の項目を同時に選択できます。それ以外の場合、ユーザーが複数の項目を同時に選択することはできません。Max および Min プロパティを設定して複数選択を許可する場合、Value プロパティ値はインデックスのベクトルにすることができます。

スライダーのステップ サイズ。配列 [minorstep majorstep] として指定します。このプロパティは、ユーザーが矢印ボタンまたはスライダー トラフ (スライダーのレール) をクリックするときのスライダーの値の変化量を制御します。

  • minorstep は、ユーザーがいずれかの矢印ボタンをクリックしたときの Value プロパティの値の変化量を示すスライダー範囲の割合です。

  • majorstep は、ユーザーがスライダー トラフをクリックしたときの Value プロパティの値の変化量を示すスライダー範囲の割合です。

majorstep の値が 1 より大きい場合、スライダーの割合が 100% を超えることはありません。

minorstepmajorstep は両方とも 1e-6 より大きくなければならず、minorstepmajorstep 以下でなければなりません。

majorstep が増えるにつれて、スライダーのつまみのインジケーターが長くなります。majorstep1 と等しい場合、つまみのインジケーターの長さはトラフの半分です。majorstep の値が 1 を超えると、つまみのインジケーターはより長くなります。

スライダーの範囲は MaxMin = 1 です。ユーザーが矢印ボタンをクリックすると、スライダーの Value プロパティが 1% 変化します。ユーザーがトラフをクリックすると、10% 変化します。

s = uicontrol('Style','Slider','Min',0,'Max',1,'SliderStep',[0.01 0.10]);

リスト ボックス内の一番上にある項目のインデックス。整数値として指定します。このプロパティは、UIControl のリスト ボックスのスタイルにのみ適用されます。このプロパティは、すべてのリスト項目を表示するのに十分な大きさがないリスト ボックスでどの項目を最上部の位置に表示するかを指定します。ListboxTop 値は、String プロパティ値として指定する配列に対するインデックスです。ListboxTop 値は、1 から配列内の要素の数の間でなければなりません。非整数値は、次に大きい最小の整数に修正されます。

メモ

String および Value プロパティは、指定する ListboxTop 値に関係なく ListboxTop プロパティの値をオーバーライドすることがあります。ListboxTop 値はその他の UIControl プロパティの値に応じて変化することがあります。たとえば、Value プロパティを明示的に設定すると、リストがその値にスクロールされます。

最も信頼できる結果を得るには、画面で MATLAB® のユーザー インターフェイス コントロールの描画が終了してから ListboxTop プロパティのクエリまたは変更を行ってください。

テキストとスタイル

すべて展開する

表示するテキスト。文字ベクトル、文字ベクトルの cell 配列、string 配列、categorical 配列、またはパイプ区切りの行ベクトルとして指定します。Style プロパティは、使用できる配列形式を決定します。

Style プロパティサポートされる配列形式
'pushbutton'

文字ベクトル


文字ベクトルの cell 配列


string 配列


categorical 配列

'Option 1'


{'Option 1'}


"Option 1"


categorical({'Option 1'})

'togglebutton'
'checkbox'
'radiobutton'
'edit'
'text'
'listbox'

文字ベクトル


文字ベクトルの cell 配列


string 配列


categorical 配列


パイプ区切りの行ベクトル

'One'


{'One','Two','Three'}


["One" "Two" "Three"]


categorical({'one','two','three'})


'One|Two|Three'

'popupmenu'

メモ

プッシュ ボタン、トグル ボタン、チェック ボックス、またはラジオ ボタンについて cell 配列または categorical 配列を指定した場合、MATLAB は配列内の最初の要素のみを表示します。

テキストの色。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'

メモ

リストボックスの ForegroundColor の値を変更する場合、MATLAB は現在選択されているリストボックスのアイテムを除くすべてのリストボックスのアイテムでその色を使用します。選択されているアイテムに対しては、そのアイテムのテキストと選択色とのコントラストが良好な色が MATLAB で使用されます。

例: [0 0 1]

例: 'b'

例: 'blue'

データ型: double | char

背景色。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'

オプションのアイコン。トゥルーカラー RGB 値の 3 次元配列として指定します。配列の値は以下のいずれかになります。

  • 0.01.0 の倍精度値

  • 0255uint8

CData を完全にサポートする UIControl オブジェクトはプッシュ ボタンとトグル ボタンのみです。ラジオ ボタンまたはチェック ボックスで CData プロパティを指定する場合、イメージはテキストとオーバーラップする可能性があります。また、ラジオ ボタンまたはチェック ボックスにイメージを指定すると、選択/選択解除の状態を表示する機能が無効になります。

データ型: double | uint8

フォント

すべて展開する

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

どのロケールでもテキストが整って見える固定幅のフォントを使用するには、'FixedWidth' を指定します。実際に使用される固定幅フォントは、root オブジェクトの FixedWidthFontName プロパティによって決まります。FixedWidthFontName プロパティを変更すると、表示内容が新しいフォントを使用して直ちに更新されます。

例: 'Arial'

フォント サイズ。正の数値として指定します。FontUnits プロパティで単位を指定します。既定のサイズはシステムによって異なります。

例: 12

例: 12.5

フォントの太さ。次の表の値として指定します。

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

  • 'bold' — 標準よりも太い文字

MATLAB ではフォントは、FontWeight プロパティを使用して、ユーザーのシステムで使用可能なフォントから選択します。すべてのフォントに太字フォントがあるとは限りません。そのため、太字フォントを指定しても標準フォントの太さと変わらない場合があります。

メモ

フォントの太さの値 'light' および 'demi' は R2014b で削除されました。これらの値のいずれかを指定した場合、結果は標準フォントの太さとなります。

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

メモ

'oblique' は削除されました。代わりに 'italic' を使用してください。

フォントの単位。次の表のいずれかの値を指定します。

単位の値説明
'points'ポイント。1 ポイントは 1/72 インチです。
'normalized'フォント サイズを高さの割合として指定する、正規化された値。UI コンポーネントのサイズを変更するときに、MATLAB はその割合を維持して、表示されるフォントをスケーリングします。
'inches'インチ。
'centimeters'センチメートル。
'pixels'

ピクセル。

R2015b 以降、Windows® および Macintosh システムにおいて、ピクセル単位の距離はシステム解像度に依存しません。

  • Windows システムの 1 ピクセルは 1/96 インチです。

  • Macintosh システムの 1 ピクセルは 1/72 インチです。

Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。

対話機能

すべて展開する

ユーザー インターフェイス コントロールの可視性。'on' または 'off' として指定します。Visible'off' の場合、ユーザー インターフェイス コントロールは表示されませんが、そのプロパティに対するクエリと設定は行うことができます。

アプリの起動を高速化するには、起動時に表示されないすべてのユーザー インターフェイス コントロールの Visible プロパティを 'off' に設定します。

ユーザー インターフェイス コントロールの操作可能状態。'on''off' または 'inactive' として指定します。Enable プロパティは、ユーザー インターフェイス コントロールがユーザーの操作に応答するかどうかを制御します。以下のいずれかの値をとります。

  • 'on' – ユーザー インターフェイス コントロールは操作可能です。

  • 'off' – ユーザー インターフェイス コントロールは操作不可で、グレー表示されます。

  • 'inactive' – ユーザー インターフェイス コントロールは操作不可ですが、Enable'on' に設定されている場合と同じ外観をもちます。

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

複数行のテキストを作成するには、関数 sprintf を使用して改行文字 ('\n') をテキストに挿入します。以下に例を示します。

txt = sprintf('Line 1\nLine 2');

その後、Tooltip プロパティを sprintf によって返された値に設定します。

コンテキスト メニュー。ContextMenu オブジェクトとして指定します。このプロパティを使用して、ユーザーが UI コンポーネント上で右クリックしたときにコンテキスト メニューを表示します。関数 uicontextmenu を使用して、コンテキスト メニューを作成します。

ツールヒント。文字ベクトル、string スカラー、または categorical 配列として指定します。ユーザーがアプリ内のコンポーネントにマウス ポインターを合わせると、ツールヒントが表示されます。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

メモ

R2018b 以降、TooltipString プロパティは推奨されません。代わりに、Tooltip プロパティを使用してください。

メモ

Selected プロパティの動作は R2014b で変更されており、推奨されません。UIControl オブジェクトには何も影響しなくなりました。このパラメーターは将来のリリースで削除される可能性があります。

メモ

SelectionHighlight プロパティの動作は R2014b で変更されており、推奨されません。UIControl オブジェクトには何も影響しなくなりました。このパラメーターは将来のリリースで削除される可能性があります。

位置

すべて展開する

位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からユーザー インターフェイス コントロールの外側左端までの距離
bottom親コンテナーの内側下端からユーザー インターフェイス コントロールの外側下端までの距離
widthユーザー インターフェイス コントロールの外側の右端と左端の間の距離
heightユーザー インターフェイス コントロールの外側の上端と下端の間の距離

すべての測定値は、Units プロパティで指定した単位で表されます。

メモ

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、タイトルが占める領域は含まれません。親コンテナーが Figure である場合、メニュー バーおよびツール バーも描画可能領域には含まれません。

Position ベクトルの 1 つの値を変更

Position ベクトルの 1 つの値を変更する場合、ドット表記と配列インデックス付けを組み合わせることができます。たとえば、次のコードはユーザー インターフェイス コントロールの幅を 52 に変更します。

b = uicontrol;
b.Position(3) = 52;
b.Position
ans =

    20    20    52    20

位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。

このプロパティ値は、Position プロパティ値および OuterPosition プロパティ値と同一です。

位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。

このプロパティ値は、Position プロパティ値および InnerPosition プロパティ値と同一です。

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

囲んでいる四角形のサイズ。4 要素の行ベクトルとして返されます。ベクトルの最初の 2 要素は常にゼロです。3 番目と 4 番目の要素はそれぞれ四角形の幅と高さです。すべての測定値は、Units プロパティで指定した単位で表されます。

MATLAB は String プロパティ値のサイズとフォントの特性に基づいて四角形のサイズを決定します。String 値のサイズを格納するように幅と高さを調整するには、Position の幅と高さの値を Extent の幅と高さの値よりわずかに大きく設定します。

1 行のテキストである String 値の場合、Extent プロパティの高さの要素は 1 行の高さを意味します。幅の要素は、テキストをラップしてコントロールに表示する場合を含め、最長の行の幅を意味します。テキストが複数行になる場合、Extent 四角形はテキストのすべての行を含みます。MaxMin > 1 の場合、編集可能なテキスト フィールドは複数行であると見なされます。

測定の単位。次の表のいずれかの値として指定します。

単位の値説明
'pixels' (既定)

ピクセル。

R2015b 以降、Windows および Macintosh システムにおいて、ピクセル単位の距離はシステム解像度に依存しません。

  • Windows システムの 1 ピクセルは 1/96 インチです。

  • Macintosh システムの 1 ピクセルは 1/72 インチです。

Linux システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。

'normalized'これらの単位は親コンテナーを基準として正規化されます。コンテナーの左下隅が (0,0) で、右上隅が (1,1) になります。
'inches'インチ。
'centimeters'センチメートル。
'points'ポイント。1 ポイントは 1/72 インチです。
'characters'

これらの単位は、グラフィックス ルート オブジェクトの既定の uicontrol フォントを基にしています。

  • 文字の幅 = 文字 x の幅。

  • 文字の高さ = 2 行のテキストのベースライン間の距離。

既定の uicontrol フォントにアクセスするには、get(groot,'defaultuicontrolFontName') または set(groot,'defaultuicontrolFontName') を使用します。

MATLAB ではすべての単位を親オブジェクトの左下隅から測定します。

このプロパティは Position プロパティに影響します。Units プロパティを変更した場合、この既定値を想定する他の関数に影響を与えないように、計算の完了後に値を既定値に戻すことを検討してください。

Units プロパティと Position プロパティを指定する順序は次のように影響します。

  • Position プロパティの前に Units プロパティを指定する場合、MATLAB は指定した単位を使用して Position を設定します。

  • Position プロパティの後に Units プロパティを指定する場合、MATLAB は既定の Units を使用して位置を設定します。その後、MATLAB は Position の値を、指定した単位における等価の値に変換します。

uicontrol テキストの配置。'center''left' または 'right' として指定します。このプロパティは、String プロパティ テキストの行揃えを決定します。

HorizontalAlignment プロパティは、uicontrol の 'text' スタイルおよび 'edit' スタイルにのみ影響します。

コールバック

すべて展開する

プライマリ コールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

この関数は、プッシュ ボタンのクリック、スライダーの移動、チェック ボックスの選択などのユーザーの操作への応答時に実行されます。この関数は、UIControl オブジェクトの Enable プロパティが 'on' に設定されている場合にのみ実行できます。

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

データ型: function_handle | cell | char

ボタンを押したときのコールバック関数。次の値の 1 つとして指定します。

  • 関数ハンドル。

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

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

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

ButtonDownFcn コールバックは、ユーザーが UI コンポーネント上でマウス ボタンをクリックしたときに実行される関数です。コールバックは次の状況で実行されます。

  • ユーザーが UI コンポーネントを右クリックし、Enable プロパティが 'on' に設定されている。

  • ユーザーが UI コンポーネントを右クリックまたは左クリックし、Enable プロパティが 'off' または 'inactive' に設定されている。

キーを押したときのコールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

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

このコールバック関数は、UIControl オブジェクトにフォーカスがあり、ユーザーがキーを押したときに実行されます。このプロパティに関数を定義しない場合、MATLAB はキー プレスを親 Figure に渡します。キーを繰り返し押すと UIControl オブジェクトのフォーカスが維持され、キーが押されるたびに関数が実行されます。ユーザーが複数のキーをほぼ同時に押した場合、MATLAB は最後に押されたキーを検出します。

このプロパティを関数ハンドル (または関数ハンドルを含む cell 配列) で指定した場合、MATLAB はコールバック データを含むオブジェクトをコールバック関数の 2 番目の引数として渡します。このオブジェクトには次の表で説明するプロパティが含まれています。コールバック関数内のこれらのプロパティには、ドット表記を使用してアクセスできます。

プロパティ

説明

例:

a

=

Shift

Shift-a

Character1 つまたは複数のキーを押した結果として表示される文字。文字は空の場合や出力できない場合があります。'a''=''''A'
Modifier押されている 1 つ以上の修飾キー (CtrlAltShift など) の名前が格納される cell 配列です。{1x0 cell}{1x0 cell}{'shift'}{'shift'}
Key押されているキー。キーに刻印された (小文字の) ラベルまたはテキストの説明によって識別されます。'a''equal''shift''a'
Sourceユーザーがキーを押したときのフォーカスのあるオブジェクトです。UIControl オブジェクトUIControl オブジェクトUIControl オブジェクトUIControl オブジェクト
EventNameコールバック関数を実行する原因となったアクションです。'KeyPress''KeyPress''KeyPress''KeyPress'

修飾キーを押すと、次のようにコールバック データに影響します。

  • 修飾キーは Character プロパティに影響を与える可能性がありますが、Key プロパティを変更することはありません。

  • 一部のキーと、Ctrl で修飾されたキーは、Character プロパティに出力不能文字を格納します。

  • CtrlAltShift および他のいくつかのキーは、Character プロパティ データを生成しません。

ユーザーがどの文字を押したかを判断するために、Figure の CurrentCharacter プロパティをクエリすることもできます。

キーを離したときのコールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

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

このコールバック関数は、UIControl オブジェクトにフォーカスがあり、ユーザーがキーを離したときに実行されます。

このプロパティを関数ハンドル (または関数ハンドルを含む cell 配列) で指定した場合、MATLAB はコールバック データを含むオブジェクトをコールバック関数の 2 番目の引数として渡します。このオブジェクトには次の表で説明するプロパティが含まれています。コールバック関数内のこれらのプロパティには、ドット表記を使用してアクセスできます。

プロパティ

説明

例:

a

=

Shift

Shift-a

Character

離されたキーの文字解釈。

'a''=''''A'
Modifier

'control' などの現在の修飾子、または修飾子がない場合は空の cell 配列

{1x0 cell}{1x0 cell}{1x0 cell}{1x0 cell}
Key

離されたキーの名前。キーに刻印された小文字のラベルまたはテキストの説明によって識別されます。

'a''equal''shift''a'
Sourceユーザーがキーを押したときのフォーカスのあるオブジェクトです。UIControl オブジェクトUIControl オブジェクトUIControl オブジェクトUIControl オブジェクト
EventNameコールバック関数を実行する原因となったアクションです。'ase''ase''ase''ase'

修飾キーを押すと、次のようにコールバック データに影響します。

  • 修飾キーは Character プロパティに影響を与える可能性がありますが、Key プロパティを変更することはありません。

  • 一部のキーと、Ctrl で修飾されたキーは、Character プロパティに出力不能文字を格納します。

  • CtrlAltShift および他のいくつかのキーは、Character プロパティ データを生成しません。

ユーザーがどの文字を押したかを判断するために、Figure の CurrentCharacter プロパティをクエリすることもできます。

コンポーネント作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

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

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

作成中のコンポーネント オブジェクトを取得するには、CreateFcn コード内で関数 gcbo を使用します。

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

コンポーネント削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

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

DeleteFcn プロパティは、MATLAB がコンポーネントを削除するときに実行されるコールバック関数を指定します (ユーザーがウィンドウを閉じるときなど)。MATLAB はコンポーネント オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

削除中のコンポーネント オブジェクトを取得するには、DeleteFcn コード内で関数 gcbo を使用します。

コールバック実行制御

すべて展開する

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

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

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

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

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

  • 値が 'on' の場合、他のコールバックがオブジェクトのコールバックに割り込むことができます。drawnowfiguregetframewaitforpause などの、MATLAB が次にキューを処理するポイントで割り込みが発生します。

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

    • 実行中のコールバックにこれらのコマンドが含まれていない場合、MATLAB はそのコールバックの実行を中断せずに終了させます。

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

メモ

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

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

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

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

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

Interruptible プロパティおよび BusyAction プロパティがプログラムの動作に及ぼす影響を示す例は、コールバック実行の中断を参照してください。

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

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

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

割り込みコールバックの割り込み元の BusyAction プロパティは、MATLAB が割り込みコールバックの実行を処理する方法を決定します。BusyAction プロパティは次の値をとります。

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

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

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバックに割り込もうとします。コールバックを実行中のオブジェクトの Interruptible プロパティが、割り込み可能かどうかを決定します。Interruptible は次のように設定します。

  • on — MATLAB が次にキューを処理するポイントで割り込みが発生します。これは既定値です。

  • off — 割り込みコールバックを所有するオブジェクトの BusyAction プロパティによって、MATLAB が割り込みコールバックをキューに追加するか無視するかを決定します。

BusyAction プロパティおよび Interruptible プロパティがプログラムの動作に及ぼす影響を示す例は、コールバック実行の中断を参照してください。

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

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

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

現在のオブジェクトになる能力。'on' または 'off' として指定します。

  • 'on' — ユーザーが実行中のアプリでコンポーネントをクリックしたときに、現在のオブジェクトを UIControl に設定します。関数 Figure および関数 gco の両方の CurrentObject プロパティは、現在のオブジェクトとして UIControl を返します。

  • 'off' — ユーザーが実行中のアプリでコンポーネントをクリックしたときに、現在のオブジェクトを、HitTest'on' になる UIControl の最も近い先祖に設定します。

メモ

Enable プロパティを使用して、コンポーネントを有効または無効にします。

親/子

すべて展開する

親オブジェクト。FigurePanelButtonGroup または Tab オブジェクトとして指定します。UI コンポーネントの作成時に親コンテナーを指定する場合、または既存の UI コンポーネントを別の親コンテナーに移動する場合にこのプロパティを使用します。

UIControl の子。空の配列として返されます。UIControl オブジェクトは子をもちません。このプロパティを設定しても効果はありません。

UIControl ハンドルの可視性。'on''callback' または 'off' として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおける UIControl ハンドルの可視性を制御します。ハンドルがその親オブジェクトのリストで、子として可視できないとき、オブジェクトの階層を検索したり、ハンドルのプロパティをクエリしてハンドルを取得する関数は、ハンドルを返しません。このような関数には getfindobjgcagcfgconewplotclaclf および close があります。HandleVisibility プロパティはまた、親 Figure の CurrentObject プロパティでオブジェクトのハンドルの可視性も制御します。ハンドルは非表示の場合も有効なままです。オブジェクト ハンドルがわかっている場合は、そのプロパティを関数 set で設定または関数 get で取得して、ハンドルに作用する関数に渡すことができます。

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

グラフィックス ルートの ShowHiddenHandles プロパティを 'on' に設定すると、HandleVisibility の値にかかわらず、すべてのハンドルを可視にできます。この設定は、HandleVisibility 値には影響しません。

メモ

ボタン グループ外で uibuttongroup によって管理されるラジオ ボタンとトグル ボタンへのアクセスは試行しないでください。偶発的なアクセスを防ぐには、これらのラジオ ボタンとトグル ボタンの HandleVisibility'off' に設定します。

識別子

すべて展開する

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

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

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

ユーザー データ。任意の配列として指定します。UserData を指定すると、アプリ内でデータを共有するのに役立ちます。詳細については、コールバック間のデータ共有を参照してください。

R2006a より前に導入