Main Content

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

Toolbar のプロパティ

ツール バーの外観と動作の制御

ツール バーは、Figure ウィンドウ最上部にある水平方向のボタンのリストのコンテナーです。関数uitoolbarは Figure にツール バーを作成し、表示される前に必要なプロパティを設定します。プロパティの値を変更することによって、ツール バーの外観と動作を変更できます。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

tb = uitoolbar; tb.Visible = 'off';

対話機能

すべて展開する

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

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

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

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

このプロパティを設定してもこのタイプのオブジェクトには影響しません。

コールバック

すべて展開する

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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'、もしくは数値または logical1(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プロパティの値をチェックします。

このプロパティは、このタイプのオブジェクトに影響しません。

親/子

すべて展開する

親オブジェクト。関数uifigureまたは関数figureで作成されたFigureオブジェクトとして指定します。親 Figure を指定しない場合は、MATLAB で関数figureが呼び出されて親となる Figure が作成されます。

このプロパティをターゲットのFigureオブジェクトに設定すると、Toolbarオブジェクトを別の Figure に移動できます。

Toolbarの子。空のGraphicsPlaceholderまたはコンポーネント オブジェクトの 1 次元配列として返されます。Toolbarオブジェクトの子は、PushToolオブジェクトおよびToggleToolオブジェクトです。

Childrenプロパティを使用して子の追加や削除を行うことはできません。このプロパティは、子のリストの参照や子の並べ替えに使用します。この配列の子の順序は、ツール バーに表示されるツールの右から左への順序を反映しています。つまり、右端のツールがリストの一番上にあり、左端のツールがリストの一番下にあります。たとえば、Childrenプロパティによって返されるこのツールの順序は、プッシュ ツールがツール バーのトグル ツールの左側に表示されることを示します。

toolOrder = tb.Children
toolOrder = 2×1 graphics array: ToggleTool PushTool

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

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

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

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

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

識別子

すべて展開する

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

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

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

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

R2006a より前に導入