Main Content

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

Toolbar のプロパティ

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

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

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

対話機能

すべて展開する

可視性の状態。'on' または 'off'、もしくは数値または logical 1 (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'、もしくは数値または 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 プロパティの値をチェックします。

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

親/子

すべて展開する

親オブジェクト。関数 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 より前に導入