ドキュメンテーション

このページは前リリースの情報です。該当の英語のページはこのリリースで変更されています。このリリースの英語のドキュメンテーションを参照するには、言語設定を United States に変更してください。

Uimenu プロパティ

メニュー プロパティの説明

プロパティの変更

グラフィックス オブジェクトのプロパティを設定および取得するには、次の 2 とおりの方法があります。

  • プロパティ インスペクターは、オブジェクトのプロパティ値を表示して変更できる対話型のツールです。プロパティ インスペクターは GUIDE から利用できます。あるいは、コマンド ラインで関数 inspect を使用します。

  • set コマンドと get コマンドで、プロパティ値を設定および取得します。

ルート、Figure、およびメニューの各レベルで既定の Uimenu プロパティを設定できます。

set(0,'DefaultUimenuPropertyName',PropertyValue...)
set(gcf,'DefaultUimenuPropertyName',PropertyValue...)
set(menu_handle,'DefaultUimenuPropertyName',PropertyValue...)

ここで、PropertyName は Uimenu プロパティの名前で、PropertyValue は指定する値です。

プロパティの既定値の変更方法の詳細は、「既定のプロパティ値の設定」を参照してください。

Uimenu Properties

この節では、Uimenu オブジェクトに有用なすべてのプロパティを、有効な値と使用方法と共に示します。中かっこ { } で囲まれている値は既定値です。

プロパティ名

プロパティの説明

Accelerator

等価なキーボード

BeingDeleted

削除予定のオブジェクトを示すプロパティ

BusyAction

コールバック ルーチンの割り込み

Callback

アクションのコントロール

Checked

メニュー チェック インジケーター

Children

サブメニューのハンドル

CreateFcn

オブジェクト作成中に実行するコールバック ルーチン

DeleteFcn

オブジェクト削除中に実行するコールバック ルーチン

Enable

uimenu の有効または無効

ForegroundColor

テキストの色

HandleVisibility

ハンドル番号がコマンド ラインと GUI からアクセス可能かどうか

Interruptible

コールバック ルーチンの割り込みモード

Label

メニュー ラベル

Parent

Uimenu オブジェクトの親

Position

相対的なメニューの位置

Separator

区切りのライン モード

Tag

ユーザー指定のオブジェクト識別子

Type

グラフィックス オブジェクトのクラス

UserData

ユーザー指定のデータ

Visible

Uimenu の可視化

Accelerator

文字

等価なキーボード。メニュー項目に対して、等価なキーボードを指定するアルファベット文字です。マウスを使ってメニュー項目を選択する代わりに、あるキーと特定の文字を押すことにより特定のメニュー選択を行うことができます。キーは、使用するプラットフォームに依存します。

  • Microsoft® Windows® システムでは、Ctrl+Accelerator を使用します。Windows では、次のキーは既定のメニュー項目用に予約されています。cv および x。詳細は、『マイクロソフト サポート オンライン』Web サイトの「Windows のキーボード ショートカット」を参照してください。

  • Macintosh システムでは、Cmd+Accelerator を使用します。Apple では、次のキーは既定のメニュー項目用に予約されています。acv および x。詳細は、Apple コンピューターのサポート Web サイトの『Mac OS Xキーボードショートカット』を参照してください。

  • UNIX® システムでは、Ctrl+Accelerator を使用します。これらのキーは、次の既定のメニュー項目用に予約されています。ops、および w。多くの UNIX アプリケーションでも、他のプラットフォームと同様に acv、および x を使用します。

アクセラレータ キーを動作させるために、アクセラレータ メニュー項目を表示する必要はありません (サブメニューを高速化できます)。ただし、以下の制限が課せられます。

  • ユーザーは、子のメニューをもたないメニューに対してのみ、アクセラレータ キーを定義できます。

  • アクセラレータは、コールバック ルーチンを直接実行するメニュー項目にのみ動作します。

  • アクセラレータのキー シーケンスを入力する場合、Figure はフォーカス内になくてはなりません。

アクセラレータを取り除くには、Accelerator を空の文字列 '' に設定します。

プラットフォーム間でのアクセラレータの比較については、『Table of Keyboard Shortcuts』を参照してください。

BeingDeleted

on | {off} (読み取り専用)

削除予定のオブジェクトを示すプロパティ。オブジェクトが削除されているかどうかを判定するメカニズム。MATLAB® は、オブジェクトの関数 delete のコールバックが呼び出されると BeingDeleted プロパティを on に設定します (DeleteFcn プロパティを参照)。関数 delete の実行中は、そのプロパティは on に設定されたままになり、その後そのオブジェクトは削除されます。

たとえば、オブジェクトの関数 delete が多くのオブジェクトに作用する他の関数を呼び出すとします。削除されるオブジェクトに対して関数が操作を実行する必要がない場合、前もって、オブジェクトの BeingDeleted プロパティを確認できます。

BusyAction

cancel | {queue}

コールバック ルーチンの割り込み。コールバックが実行され、コールバックが定義されたオブジェクトのイベントをユーザーがトリガーした場合、新規のイベントに関連付けられたコールバックは、実行中のコールバックを中断するかどうかを決めるために、BusyAction の値を使用します。

  • 値が cancel の場合、イベントは破棄され、2 番目のコールバックは実行しません。

  • 値が queue で、最初のコールバックの Interruptible プロパティが on の場合、2 番目のコールバックはイベント キューに追加され、最初のコールバックの実行終了後に、その順序で実行されます。

      メモ:   中断中のコールバックが DeleteFcn または CreateFcn コールバックの場合、または Figure の CloseRequest または ResizeFcn コールバックの場合、オブジェクトの Interruptible プロパティの値にかかわらず、コールバックの実行を中断します。コールバックの中断の制御については、Interruptible プロパティを参照してください。

Callback

文字列または関数ハンドル

メニュー アクション。メニューまたはそのサブメニュー (存在する場合) をアクティブにすると実行されるコールバック ルーチンです。アクティブ化の方法はプラットフォームよって異なります。通常は、メニューをクリックするか、メニューにサブメニューがある場合はそのサブメニューをクリックします。このルーチンには、正しい MATLAB 式またはコード ファイル名を文字列として定義してください。式は、MATLAB ベース ワークスペースで実行します。

    注意   メニュー項目を動的に変更するために、uimenu コールバックを使用しないでください。一部のプラットフォームでは、コールバックのメニュー項目の削除、追加、および置き換えを行うと、メニューに空白ができることがあります。コールバックでメニュー項目の非表示、表示、および無効化を行うと、同じことが起こることがあります。メニュー項目を完全に埋めるには、これらの項目を削除して、コールバックの外部に作成してください。

Checked

on | {off}

メニュー チェック インジケーター。このプロパティを on に設定するには、対応するメニュー項目の次にチェック マークを付けます。off に設定すると、チェック マークが外されます。これは、特別なオプションの状態を示すメニューの作成に使うことができます。たとえば、ユーザーがメニュー項目を選択するごとに、可視と不可視間の軸の視界を切り替える [Axes を表示] と呼ばれるメニュー項目があると仮定します。軸が可視である場合にメニュー項目の隣にチェックを表示させる場合、Show axes メニュー項目のコールバックに次のコードを加えてください。

if strcmp(get(gcbo, 'Checked'),'on')
    set(gcbo, 'Checked', 'off');
else 
    set(gcbo, 'Checked', 'on');
end

これにより、ユーザーがメニュー項目を選択するたびに、メニュー項目の Checked プロパティの値が onoff の間で交互に切り替わります。

チェックされていないメニュー項目が、選択されたときにチェックされたことを示す正式なメカニズムがないことに注意してください。

    メモ:   このプロパティは、トップ レベルと親のメニューを無視します。

Children

ハンドル番号のベクトル

サブメニューのハンドル。Uimenu オブジェクトのすべての子のハンドルを含むベクトルです。Uimenu の子オブジェクトは、他の Uimenu でサブメニューとして機能します。メニューを並べ替えるために、このプロパティを使用できます。

CreateFcn

文字列または関数ハンドル

オブジェクト作成中に実行するコールバック ルーチン。指定された関数は、MATLAB が uimenu オブジェクトを作成した場合に実行されます。MATLAB は、CreateFcn コールバックを実行する前に、Uimenu のすべてのプロパティ値を設定するため、これらの値はコールバックに適用されます。関数内で gcbo を使用することで、作成中の Uimenu のハンドルが取得できます。

既存の Uimenu オブジェクトにこのプロパティを設定しても効果はありません。

すべての新規 Uimenu に既定の CreateFcn コールバックを定義できます。この既定の設定は uimenu を呼び出す場合、異なる CreateFcn コールバックを指定して上書きしない限り、適用されます。たとえば、以下のコードを考えます。

set(0,'DefaultUimenuCreateFcn','set(gcbo,...
    ''Visible'',''on'')')

上記は、新規のメニューを作成した場合に常に実行される既定の CreateFcn コールバックを作成します。これは、uimenu オブジェクトの既定の Visible プロパティを設定します。

この既定の設定をオーバーライドし、Visible プロパティが異なる値に設定されたメニューを作成するには、以下のようなコードで uimenu を呼び出します。

hpt = uimenu(...,'CreateFcn','set(gcbo,...
''Visible'',''off'')')

    メモ:   既定の CreateFcn コールバックを上書きするには、新規のコールバックを与え、指定されたプロパティに異なる値を与える必要があります。これはプロパティ値が設定された後に、CreateFcn コールバックを実行し、uimenu の呼び出しで明示的に設定されたプロパティ値を上書きできるためです。上記の例で、この Uimenuの CreateFcn プロパティを再定義する代わりに、Visibleoff に明示的に設定した場合、既定の CreateFcn コールバックは、Visible を既定の設定 (すなわち on) に戻します。

copyobj または textwrap (関数 copyobj を呼び出す) を CreateFcn 内で呼び出さないでください。Uicontrol オブジェクトをコピーすると、CreateFcn が繰り返し始動します。そのため、Root オブジェクトの RecursionLimit プロパティが超過して、一連のエラー メッセージが表示されるようになります。

関数ハンドルを使用してコールバック関数を定義する方法の詳細は、「関数ハンドル コールバック」を参照してください。

DeleteFcn

文字列または関数ハンドル

Uimenu コールバック ルーチンの削除。Uimenu オブジェクトを削除する場合に実行するコールバック ルーチンです (たとえば、関数 delete コマンドを発行する場合や Uimenu をもつ Figure をリセットする場合)。MATLAB は、オブジェクトのプロパティを削除する前に、このルーチンを実行するので、これらの値はコールバック関数に使用できます。

DeleteFcn が実行中のオブジェクトのハンドルは、ルートの CallbackObject プロパティを通してのみアクセスできます。このプロパティは、gcbo を使用してより簡単にクエリされます。

関数ハンドルを使用してコールバック関数を定義する方法の詳細は、「関数ハンドル コールバック」を参照してください。

Enable

{on} | off

Uimenu の有効または無効。このプロパティは、メニュー項目の選択を制御するものです。使用禁止 (off と設定) のとき、メニュー Label は隠れているため、選択できないことを示します。

ForegroundColor

ColorSpec X-Windows のみ

メニュー ラベルの文字列のカラー。このプロパティは、Label プロパティに定義されるテキストの色を指定します。3 要素の RGB ベクトルまたは MATLAB の既定の色の名前を指定します。テキストの既定の色は黒です。色の指定の詳細は、「ColorSpec」を参照してください。

HandleVisibility

{on} | callback | off

オブジェクト ハンドルへのアクセスのコントロール。このプロパティは、オブジェクト ハンドルが、その親オブジェクトのリストで、子として可視であることを決めます。ハンドルがその親オブジェクトのリストで、子として可視できないとき、オブジェクトの階層を検索したり、ハンドルのプロパティをクエリしてハンドルを取得する関数は、ハンドルを返しません。このような関数には、getfindobjgcagcfgconewplotclaclfclose があります。いずれも、親 Figure の CurrentObject プロパティで可視なハンドルではありません。隠蔽されているハンドルは、有効なままです。オブジェクト ハンドルがわかっている場合、そのプロパティを関数 set および get で設定して取得し、ハンドルに作用する関数に渡すことができます。

  • HandleVisibilityon であるとき、ハンドルは常に見える状態です。

  • HandleVisibilitycallback に設定すると、コールバック ルーチン内から、あるいはコールバック ルーチンにより呼び出される関数から、ハンドルを参照することができます。しかし、コマンド ラインから呼び出される関数からは参照できません。つまり、コマンド ライン ユーザーから GUI を保護すると同時に、コールバック ルーチン内からはオブジェクト ハンドルに完全にアクセスできるようにします。

  • HandleVisibilityoff に設定すると、ハンドルが常にアクセスできなくなります。これは、コールバック ルーチンが GUI に影響を与える可能性のある (ユーザーの入力した文字列を評価するような) 関数を実行するときに必要となる可能性があります。そのため、その関数の実行中に、それ自身のハンドルを一時的に隠蔽します。

HandleVisibility の設定にかかわらず、ルートの ShowHiddenHandles プロパティを on に設定して、すべてのハンドルを可視にできます。これは、HandleVisibility プロパティの値に影響を与えません。

Interruptible

{on} | off

コールバック ルーチンの割り込みモード。あるコールバックの実行中に、ユーザーがコールバックが定義されているオブジェクトでマウス クリックなどのイベントをトリガーすると、そのコールバックは、はじめのコールバックへの割り込みを試みます。MATLAB は、以下の要因に従い、コールバックを処理します。

  • 実行中のコールバックをもつオブジェクトの Interruptible プロパティ

  • 実行中のコールバックが drawnowfiguregetframepausewaitfor ステートメントを含むかどうか

  • 実行の待機をしているコールバックをもつオブジェクトの BusyAction プロパティ

実行中のコールバックをもつオブジェクトの Interruptible プロパティが on (既定の設定) の場合、このコールバックは割り込み可能です。コールバックが関数 drawnowfiguregetframepausewaitfor のいずれかを呼び出すときは常に、関数に定義された処理を実行する前に、待機中のコールバックを含めたイベント キュー内にあるイベントを処理します。

実行中のコールバックをもつオブジェクトの Interruptible プロパティが off の場合、このコールバックには割り込みできません (特定のコールバックによる例外を除きます。以下の注意を参照してください)。コールバックが実行を待機しているオブジェクトの BusyAction プロパティは、コールバックの処理内容を決めます。

    メモ:   中断中のコールバックが DeleteFcn または CreateFcn コールバックの場合、または Figure の CloseRequest または ResizeFcn コールバックの場合、オブジェクトの Interruptible プロパティの値にかかわらず、コールバックの実行を中断します。中断中のコールバックは、drawnowfiguregetframepausewaitfor ステートメントの次の実行を開始します。Figure の WindowButtonDownFcn のコールバック ルーチンあるいは、オブジェクトの ButtonDownFcn または Callback ルーチンは、上記の規則に従って処理されます。

Label

文字列

メニュー ラベル。メニュー項目上に指定したテキスト ラベルの文字列です。ユーザーは、文字 '&' を使用してラベルのニーモニックを指定します。以下の記述を除き、文字列で '&' の後に続く文字にはアンダーラインが現れ、メニューが可視のとき文字に続いて Alt+ を押した場合、メニュー項目を選択します。'&' 文字は、表示されません。ラベルに '&' 文字を表示するには、文字列に 2 つの '&' 文字を使用します。

'O&pen selection' は、Open selection となります。

'Save && Go' は、Save & Go となります。

'Save&&Go' は、Save & Go となります。

'Save& Go'Save& Go となります (スペースは記憶記号ではありません)。

    ティップ   Macintosh コンピューター上で動作するように設計されたアプリケーションには、ニーモニックを指定しないでください。ニーモニックでメニューにアクセスすることは、『Apple Human Interface Guidelines』の原則に違反します。ただし、Mac のキー シーケンスで個々のメニュー項目にアクセスできるように、Accelerator プロパティを設定することができます。

予約語 (defaultremove、および factory) をエスケープしない限り、メニュー ラベルに予約語を含めないでください。予約語は大文字と小文字を区別します。Label プロパティでこれらの予約語のいずれかを使用する場合、バックスラッシュ ('\') 文字を予約語の前に置くことによって、その予約語をエスケープしてください。以下に例を示します。

'¥remove' は、remove となります。

'¥default'は、default となります。

'¥factory' は、factory となります。

Parent

ハンドル

Uimenu オブジェクトの親。Uimenu の親オブジェクトのハンドル番号。Uimenul オブジェクトの親は、メニュー バー上の Figure または サブメニューの場合は Uimenu です。このプロパティを新規の親のハンドル番号に設定することで、Uimenu オブジェクトを他の Figure へ移動できます。

Position

スカラー

相対的なメニューの位置。Position の値は、メニュー バー上の位置またはメニュー内での位置を示します。トップレベル メニューはメニュー バー上で左から右に、Position プロパティ値に従って配置されます。ここで、1 は左端の位置です。メニュー内の個々の項目は上から下に、Position プロパティ値に従って配置されます。ここで、1 は最上部の位置です。

Separator

on | {off}

区切りライン モード。このプロパティを on に設定すると、メニュー項目を複数行で表します。

Tag

文字列

ユーザー指定のオブジェクトのラベルTag プロパティは、ユーザー指定のラベルをもつグラフィックス オブジェクトを識別する方法を提供します。これは、オブジェクトのハンドル番号をグローバル変数として定義したり、コールバック ルーチン間で引数として渡す対話型のグラフィックス プログラムの構築に役立ちます。任意の文字列で Tag を定義できます。

Type

文字列 (読み取り専用)

グラフィックス オブジェクトのクラス。Uimenu オブジェクトでは、Type は常に文字列 'uimenu' です。

UserData

行列

ユーザー指定のデータ。Uimenu オブジェクトと関連付ける任意の行列です。MATLAB は、このデータを使用しませんが、関数 set と関数 get コマンドを使用してアクセスできます。

Visible

{on} | off

Uimenuの可視化。既定の設定では、すべての Uimenu が可視です。off に設定した場合、Uimenu は見えなくなりますが、存在はしており、そのプロパティのクエリおよび設定ができます。

この情報は役に立ちましたか?