ドキュメンテーション

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

Panel のプロパティ

パネルの外観の制御

パネルは UI コンポーネントをグループ化するためのコンテナーです。プロパティがパネルの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照する。

uf = uifigure;
p = uipanel('Parent', uf);
p.Title = 'Display Options';

以下にリストするプロパティは、App Designer 内または関数 uifigure で作成されたアプリ内のパネルで有効です。GUIDE 内、あるいは関数 figure で作成したアプリ内で使用するパネルについては、Panel のプロパティ を参照してください。

タイトル

すべて展開する

タイトル。文字ベクトル、string スカラー、または categorical 配列として指定します。このプロパティを categorical 配列として指定した場合、MATLAB® は配列の最初の要素のみを表示します。

MATLAB では垂直スラッシュ ('|') 文字は改行として解釈されず、タイトル内に垂直スラッシュとして表示されます。

Unicode® 文字を指定する場合、Unicode 10 進コードを関数 char に渡します。たとえば、['Multiples of ' char(960)]Multiples of π として表示されます。

タイトルの位置。'lefttop''centertop'、または 'righttop' として指定します。

色とスタイル

すべて展開する

タイトルの色。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 成分、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'

パネルの境界。'line' または 'none' として指定します。

フォント

すべて展開する

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

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

例: 'Arial'

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

例: 14

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

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

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

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

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

フォントの測定単位。'pixels' として指定します。Windows® および Macintosh システムでのピクセル単位の距離は、システムの解像度に依存しません。

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

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

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

対話機能

すべて展開する

パネルの可視性。'on' または 'off' として指定します。Visible プロパティは、画面にパネルを表示するかどうかを決定します。Visible プロパティが 'off' に設定されている場合、パネルは非表示です。ただし、Panel オブジェクトのプロパティの指定やアクセスは行うことができます。

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

メモ:

Visible プロパティを変更しても、子コンポーネントの Visible プロパティ値は "変更されません"。これは、パネルを非表示にするとその子コンポーネントも非表示になる場合にも当てはまります。

スクロール機能。'off' または 'on' として指定します。このプロパティを 'on' に設定すると、コンテナー内でのスクロールが有効になります。ただし、以下の追加要件があります。

  • コンテナー内の子コンポーネントは、コンテナーが一度に表示できるよりも大きい領域を占めていなければならない。

  • コンテナーに収まらないコンポーネントは、コンテナーより上または右になければならない。コンテナーより下または左にあるコンポーネントにスクロールすることはできません。

特定のタイプのチャートと座標軸では、スクロール可能なコンテナーはサポートされていません。ただし、チャートや座標軸をスクロール不可能なパネル内に配置してから、そのパネルをスクロール可能なコンテナーに配置することはできます。詳細については、App Designer でのグラフィックスの表示を参照してください。

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

位置

すべて展開する

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

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

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

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

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

パネルの位置とサイズ。境界とタイトルは除外します。[left bottom width height] の形式の 4 要素ベクトルとして返されます。次の表で、ベクトルの各要素について説明します。

説明
left親コンテナーの内側左端からパネルの内側左端までの距離です。
bottom親コンテナーの内側下端からパネルの内側下端までの距離です。
widthパネルの内側の左右の端の間の距離です。
heightパネルの内側の上下の端の間の距離です。タイトルが存在する場合、この距離には含まれません。

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

メモ

InnerPosition プロパティを使用するときに検討しなければならない重要な点がいくつかあります。

  • InnerPosition 値は、タイトルの有無、フォント特性および BorderType によって影響されます。

  • InnerPosition の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、タイトルが占める領域は含まれません。

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

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

測定の単位。'pixels' として指定します。

子のサイズの自動変更。'on' または 'off' として指定します。

  • 'on' — コンテナーのサイズが変更されると、子コンポーネントのサイズが自動的に変更されます。

  • 'off' — 子コンポーネントのサイズは変更されません。

AutoResizeChildren プロパティはコンテナーの直接の子に影響します。入れ子にされたコンテナー内の子には影響しません。

サイズ変更の動作をカスタマイズするには、AutoResizeChildren プロパティを 'off' に設定して、コンテナーの SizeChangedFcn コールバックを作成します。詳細については、App Designer でのサイズ変更可能アプリの管理を参照してください。

アプリのサイズ変更を無効にするには、Figure の Resize プロパティを 'off' に設定します。

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

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

g = uigridlayout([4 3]);
p = uipanel(g);
p.Layout.Row = 3;
p.Layout.Column = 2;

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

p.Layout.Column = [2 3];

コールバック

すべて展開する

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

  • 関数ハンドル。

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

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

このコールバック関数を定義して、このコンテナーのサイズが変更されたときに (ユーザーがウィンドウのサイズを変更した場合など)、アプリのレイアウトをカスタマイズします。

メモ

SizeChangedFcn コールバックは、このコンテナーの AutoResizeChildren プロパティが 'off' に設定されていない限り実行されません。App Designer で、[UI Figure プロパティ] パネルの [AutoResizeChildren] チェック ボックスをオフにすることで SizeChangedFcn 実行可能ファイルを作成できます。

SizeChangedFcn コールバックは、次の場合に実行されます。

  • このコンテナーがはじめて表示される。

  • このコンテナーがサイズ変更中に表示される。

  • このコンテナーがサイズ変更後にはじめて表示される。この状況は、コンテナーが非表示の間にサイズが変更され、その後表示される場合に発生します。

SizeChangedFcn コールバックを定義するときに検討しなければならないその他の重要な点は、次のとおりです。

  • SizeChangedFcn が使用する変数がすべて定義されるまで、このコンテナーの表示を遅延させることを検討します。これにより、SizeChangedFcn コールバックがエラーを返すのを防ぐことができます。コンテナーの表示を遅延させるには、Visible プロパティを 'off' に設定します。SizeChangedFcn コールバックが使用する変数を定義した後で、Visible プロパティを 'on' に設定します。

  • 入れ子にされたコンテナーがアプリに含まれる場合、コンテナーのサイズは内側から順に変更されます。

  • サイズを変更しているコンテナーに SizeChangedFcn 内からアクセスするには、ソース オブジェクト (コールバック内の最初の入力引数) を参照するか、関数 gcbo を使用します。

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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 オブジェクトを作成します。

Panel の子オブジェクト。空の GraphicsPlaceholder またはコンポーネント オブジェクトの 1 次元配列として返されます。他の Panel を含む、あらゆるコンポーネント オブジェクトを Panel の子にすることができます。

Children プロパティを使用して、子コンポーネントの追加または削除を行うことはできません。このプロパティは、子のリストの参照や子の並べ替えに使用します。この配列内の子オブジェクトの順序は、画面上のコンポーネントの前から後ろへの順序 (重なり順序) を反映します。

このリストに子オブジェクトを追加するには、子オブジェクトの Parent プロパティを Panel オブジェクトに設定します。

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

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

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

識別子

すべて展開する

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

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

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

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

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

参考

関数

R2016a で導入