Main Content

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

TabGroup のプロパティ

figure ベースのアプリでのタブ グループの外観と動作の制御

ここでは、GUIDE または関数 figure で作成されたアプリのタブ グループに対して有効なプロパティを紹介しています。App Designer または関数 uifigure を使用する場合は、「TabGroup のプロパティ」を参照してください。詳細については、GUIDE の移行策を参照してください。

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

f = figure;
tg = uitabgroup(f);
tg.Position = [.1 .1 .8 .8];

タブ

すべて展開する

タブ ラベルの位置。'top''bottom''left' または 'right' として指定します。このプロパティは、タブ グループに対するタブ ラベルの位置を指定します。

現在選択されているタブ。Tab オブジェクトとして指定します。

このプロパティを使用して、タブ グループ内で現在選択されているタブを特定します。このプロパティを使用して、既定の選択を設定することもできます。

SelectedTab プロパティの既定値は、タブ グループに最初に追加されたタブです。

対話機能

すべて展開する

可視性の状態。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

  • 'on' — オブジェクトを表示します。

  • 'off' — オブジェクトを削除せずに非表示にします。非表示の UI コンポーネントのプロパティには引き続きアクセスできます。

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

非表示のコンテナーのサイズを変更した場合、そのコンテナーが表示されるときに SizeChangedFcn コールバックがトリガーされます。

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

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

位置

すべて展開する

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

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

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

メモ

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

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

Position ベクトルの 1 つの値を変更する場合、ドット表記と配列インデックス付けを組み合わせることができます。たとえば、このコードはその他の Position 値をいずれも変更することなくタブ グループの幅を .5 に設定します。

tg = uitabgroup;
tg.Position(3) = .5;

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

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

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

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

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

単位の値説明
'normalized'これらの単位は親コンテナーを基準として正規化されます。コンテナーの左下隅が (0,0) で、右上隅が (1,1) になります。
'pixels'

ピクセル。

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

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

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

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

'inches'インチ。
'centimeters'センチメートル。
'points'ポイント。1 ポイントは 1/72 インチです。
'characters'

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

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

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

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

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

Units プロパティの値を変更した場合、Units プロパティの設定値が既定値であることを前提としている他の関数に影響を及ぼさないように、計算終了後に元の既定値に戻すことを推奨します。

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

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

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

コールバック

すべて展開する

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

  • 関数ハンドル。

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

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

このコールバック関数は、ユーザーがタブ グループ内で別のタブを選択したときに実行されます。

SelectionChangedFcn プロパティを関数ハンドル (または関数ハンドルを含む cell 配列) に設定する場合、MATLAB はイベント データを含む SelectionChangedData オブジェクトをコールバック関数の 2 番目の引数として渡します。このオブジェクトには次の表で説明するプロパティが含まれています。コールバック関数内のこれらのプロパティには、ドット表記を使用してアクセスできます。たとえば、コールバックの 2 番目の引数が event と呼ばれる場合、event.NewValue は現在選択されている Tab を返します。

プロパティ

説明

OldValue

前に選択されていた Tab、または何も選択されていなかった場合は []

NewValue

現在選択されている Tab

Source

コールバックを実行するコンポーネント

EventName

'SelectionChanged'

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

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

  • 関数ハンドル。

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

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

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

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

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

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

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

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

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

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

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

ヒント

SizeChangedFcn コールバックを指定する代わりの簡単な方法として、コンテナーの中に入れるすべてのオブジェクトの Units プロパティを 'normalized' に設定できます。これにより、これらのコンポーネントがコンテナーに比例してスケールされます。

SizeChangedFcn コールバックでレイアウトを管理する方法の詳細については、プログラムによる UI のレイアウトを参照してください。

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

  • 関数ハンドル。

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

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

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

ButtonDownFcn コールバックは、ユーザーがコンテナー内でマウス ボタンをクリックしたときに実行される関数です。

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

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 プロパティがプログラムの動作に及ぼす影響を示す例は、コールバック実行の中断を参照してください。

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

削除状態。matlab.lang.OnOffSwitchState 型の on/off logical 値として返されます。

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

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

親/子

すべて展開する

親オブジェクト。FigurePanel または Tab オブジェクトとして指定します。タブ グループの作成時に親コンテナーを指定したり、既存のタブ グループを別の親コンテナーに移動したりするには、このプロパティを使用します。

TabGroup の子。空の GraphicsPlaceholder またはコンポーネント オブジェクトの 1 次元配列として返されます。TabGroup オブジェクトの子は Tab オブジェクトです。

Children プロパティを使用して子の追加や削除を行うことはできません。このプロパティは、子のリストの参照や子の並べ替えに使用します。この配列内の子の順序は、画面に表示されるタブの順序を反映しています。

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

HandleVisibility プロパティが 'off' に設定されているオブジェクトは Children プロパティにリストされません。

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

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

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

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

識別子

すべて展開する

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

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

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

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

互換性についての考慮事項

すべて展開する

R2020a 以降は非推奨

R2014b で導入