Menu のプロパティ
メニューの外観と動作の制御
アプリ ウィンドウの最上部のメニューにオプションのドロップダウン リストが表示されます。メニューを作成したり、既存のメニューにサブメニューを追加するには、関数 uimenu
を呼び出します。プロパティは、メニューの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。
fig = uifigure; m = uimenu(fig); m.Text = 'Open Selection';
Menu
オブジェクトの一部のプロパティは、メニューが関数 uifigure
と関数 figure
のどちらを使用して作成された Figure の子かによって異なります。関数 uifigure
は、新しいアプリの作成時に使用が推奨される関数であり、App Designer アプリで使用される関数です。詳細については、アプリの作成方法を参照してください。
メニュー
Text
— メニュー ラベル
文字ベクトル | string スカラー
メニュー ラベル。文字ベクトルまたは string スカラーとして指定します。このプロパティはメニュー (またはメニュー項目) に表示されるラベルを指定します。
予約語 'default'
、'remove'
および 'factory'
(大文字小文字が区別されます) の使用は避けてください。予約語を使用しなければならない場合は、その単語の前にバックスラッシュ文字を指定します。たとえば、'default'
は '\default'
として指定します。
ラベルのテキストにアンパサンド文字 (&) を使用して、ニーモニックのキーボード ショートカット (Alt+mnemonic
) を指定できます。Alt を押すと、メニューにはアンパサンドの次に来る文字が下線付きで表示されます。メニュー項目は Alt キーを押したまま表示される文字を入力すると選択できます。
ニーモニックを使用するには、アプリ内で定義するすべてのメニューおよびメニュー項目のニーモニックを指定しなければなりません。ニーモニックを一部のメニューまたはメニュー項目に対してのみ定義する場合は、Alt キーを押しても効果はありません。
次の表にいくつか例を示します。
テキスト値 | ニーモニック ヒント付きメニュー ラベル |
---|---|
'&Open Selection' | |
'O&pen Selection' | |
'&Save && Go' | |
Accelerator
— キーボード ショートカット
文字 | string
キーボード ショートカット。1 文字、または 1 文字を含む string として指定します。このプロパティを使用して、メニュー項目を選択するキーボード ショートカットを定義します。
例: mitem.Accelerator = "H"
アクセラレータの値を指定すると、ユーザーはマウスを使用する代わりに、文字と別のキーを押すことによってメニュー項目を選択できます。キーは、使用するプラットフォームに依存します。
Windows® システム: Ctrl+
accelerator
Macintosh システム: Command+
accelerator
Linux® システム: Ctrl+
accelerator
アクセラレータを使用する際の注意事項
アクセラレータのキー シーケンスを入力する場合、アプリ ウィンドウはフォーカス内になければなりません。
アクセラレータは最上位メニューで使用できません。
アクセラレータはメニュー項目が次のすべての条件を満たす場合にのみ機能します。
サブメニュー項目が含まれていない。
コールバック関数を実行する。
Visible
プロパティが'on'
に設定されている。そのアクセラレータの値が、同じアプリ内の異なるメニュー項目にまだ代入されていない。
Separator
— 区切りのライン モード
'off'
(既定値) | on/off logical 値
区切りのライン モード。'off'
または 'on'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを 'on'
に設定すると、メニュー項目の上に境界線が描画されます。
メモ
メニュー項目が最上位メニュー項目の場合、Separator
プロパティは無視されます。
Checked
— メニュー チェック インジケーター
'off'
(既定値) | on/off logical 値
メニュー チェック インジケーター。'off'
または 'on'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを 'on'
に設定するには、対応するメニュー項目の次にチェック マークを付けます。'off'
に設定すると、チェック マークが外されます。この機能を使用すると、アプリケーションの機能を有効または無効にするメニュー項目の状態を表示できます。
メモ
メニュー項目が次の場合、Checked
プロパティは無視されます。
最上位メニュー項目
1 つ以上の子メニュー項目をもつメニュー項目
ForegroundColor
— メニュー ラベルの色
[0 0 0]
(既定値) | RGB 3 成分 | 16 進数カラー コード | 'r'
| 'g'
| 'b'
| ...
メニュー ラベルの色。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" |
対話機能
Visible
— 可視性の状態
'on'
(既定値) | on/off logical 値
可視性の状態。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
'on'
— オブジェクトを表示します。'off'
— オブジェクトを削除せずに非表示にします。非表示の UI コンポーネントのプロパティには引き続きアクセスできます。
アプリの起動を高速化するには、起動時に表示する必要のないすべての UI コンポーネントの Visible
プロパティを 'off'
に設定します。
Enable
— 操作可能状態
'on'
(既定値) | on/off logical 値
操作可能状態。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、アプリ ユーザーはコンポーネントを操作できます。このプロパティを
'off'
に設定した場合、コンポーネントはグレー表示されます。これは、アプリ ユーザーがコンポーネントを操作することができず、コンポーネントはコールバックをトリガーしないことを示します。
ContextMenu
— コンテキスト メニュー
空の GraphicsPlaceholder
配列 (既定値) | ContextMenu
オブジェクト
このプロパティを設定してもこのタイプのオブジェクトには影響しません。
コールバック
MenuSelectedFcn
— メニュー選択コールバック
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
メニュー選択コールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックは、メニュー項目の位置および操作のタイプに従って応答します。
メニューを左クリックすると、メニューが展開し、そのコールバックがトリガーされます。
いずれかのメニューが展開しているときに他の親メニュー (または最上位メニュー) にカーソルを合わせると、そのメニューが展開し、そのコールバックがトリガーされます。
メモ
メニュー項目を動的に変更するためにコールバックを使用しないでください。コールバックでメニュー項目の削除、追加、および置き換えを行うと、メニューが空白になることがあります。代わりに、Visible
プロパティを使用してメニュー項目の非表示と表示を設定します。また、Enable
プロパティを設定してメニュー項目の有効化や無効化を行うこともできます。メニュー項目を完全に埋めるには、これらの項目を削除して、コールバックの外部に作成してください。
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
CreateFcn
— 作成関数
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
オブジェクト作成関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。
このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn
コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn
プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。
既存のコンポーネントに CreateFcn
プロパティを設定しても効果はありません。
このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo
を使用してオブジェクトにアクセスします。
DeleteFcn
— 削除関数
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
オブジェクト削除関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。
このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn
コールバックを実行します。DeleteFcn
プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。
このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo
を使用してオブジェクトにアクセスします。
コールバック実行制御
Interruptible
— コールバックの割り込み
'on'
(既定値) | on/off logical 値
コールバックの割り込み。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティは実行中のコールバックが割り込み可能かどうかを決定します。次の 2 つのコールバックの状態について考慮する必要があります。
"実行中" コールバックは、現在実行しているコールバックです。
"割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。
MATLAB は、コールバック キューを処理するコマンドを実行するたびにコールバックの割り込み動作を判別します。これらのコマンドには、drawnow
、figure
、uifigure
、getframe
、waitfor
、pause
があります。
実行中コールバックにこれらのコマンドが含まれていない場合、割り込みは発生しません。MATLAB は、実行中コールバックの実行を先に終了させ、その後に割り込みコールバックを実行します。
実行中コールバックにこれらのいずれかのコマンドが含まれている場合、実行中コールバックを所有するオブジェクトの Interruptible
プロパティに応じて割り込みが発生するかどうかが決まります。
Interruptible
の値が'off'
の場合、割り込みは発生しません。代わりに、割り込みコールバックを所有するオブジェクトのBusyAction
プロパティに応じて、割り込みコールバックが破棄されるかコールバック キューに追加されるかが決まります。Interruptible
の値が'on'
の場合、割り込みが発生します。MATLAB は、コールバック キューの次回処理時に、実行中コールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了した後、MATLAB は実行中だったコールバックの実行を再開します。
メモ
コールバックの割り込みと実行は、以下の状況では動作が異なります。
割り込みコールバックが
DeleteFcn
、CloseRequestFcn
またはSizeChangedFcn
コールバックの場合、Interruptible
プロパティの値にかかわらず割り込みが発生します。実行中のコールバックが関数
waitfor
を現在実行している場合、Interruptible
プロパティの値にかかわらず割り込みが発生します。割り込みコールバックが
Timer
オブジェクトで所有されている場合、Interruptible
プロパティの値にかかわらずスケジュールに従ってコールバックが実行されます。
BusyAction
— コールバック キューイング
'queue'
(既定値) | 'cancel'
コールバック キューイング。'queue'
または 'cancel'
として指定します。BusyAction
プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。
"実行中" コールバックは、現在実行しているコールバックです。
"割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。
BusyAction
プロパティによってコールバック キューイングの動作が決まるのは、次の両方の条件を満たす場合のみです。
これらの条件に当てはまる場合、割り込みコールバックを所有するオブジェクトの BusyAction
プロパティに応じて MATLAB による割り込みコールバックの処理方法が決まります。BusyAction
プロパティは次の値を取ることができます。
'queue'
— 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。'cancel'
— 割り込みコールバックを実行しません。
BeingDeleted
— 削除状態
on/off logical 値
この プロパティ は読み取り専用です。
削除状態。matlab.lang.OnOffSwitchState
型の on/off logical 値として返されます。
MATLAB は、DeleteFcn
コールバックが実行を開始すると、BeingDeleted
プロパティを 'on'
に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted
プロパティは 'on'
に設定されたままです。
クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted
プロパティの値をチェックします。
親/子
Parent
— 親オブジェクト
Figure
オブジェクト | Menu
オブジェクト | ContextMenu
オブジェクト
親オブジェクト。関数 uifigure
を使用して作成された Figure
オブジェクト、別の Menu
オブジェクト、または ContextMenu
オブジェクトとして指定します。このプロパティを設定することで、メニュー項目を別のウィンドウまたは別のメニューに移動できます。親を既存の Menu
オブジェクトとして指定して、メニュー項目をメニューに追加するか、またはメニュー項目を入れ子にします。
Children
— メニューの子
空の GraphicsPlaceholder
配列 (既定値) | Menu
オブジェクトの 1 次元配列
メニューの子。空の GraphicsPlaceholder
または Menu
オブジェクトの 1 次元配列として返されます。
Children
プロパティを使用して、子コンポーネントの追加または削除を行うことはできません。このプロパティは、子のリストの表示や子メニュー項目の並べ替えに使用します。
子メニューをこのリストに追加するには、別の Menu
オブジェクトの Parent
プロパティをこの Menu
オブジェクトに設定します。
HandleVisibility
— オブジェクト ハンドルの可視性
'on'
(既定値) | 'callback'
| 'off'
オブジェクト ハンドルの可視性。'on'
、'callback'
または 'off'
として指定します。
このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、get
、findobj
、clf
および close
が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。
HandleVisibility の値 | 説明 |
---|---|
'on' | オブジェクトは常に参照できます。 |
'callback' | オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。 |
'off' | オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility を 'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。 |
識別子
Type
— グラフィックス オブジェクトのタイプ
'uimenu'
この プロパティ は読み取り専用です。
グラフィックス オブジェクトのタイプ。'uimenu'
として返されます。
Tag
— オブジェクト識別子
''
(既定値) | 文字ベクトル | string スカラー
オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag
値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj
を使用して Tag
値に基づいてオブジェクトを検索できます。
UserData
— ユーザー データ
[]
(既定値) | 配列
ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。
App Designer を使用している場合は、UserData
プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。
uifigure
ベースのアプリのみ
Tooltip
— ツールヒント
''
(既定値) | 文字ベクトル | 文字ベクトルの cell 配列 | string 配列 | 1 次元の categorical 配列
メモ
このプロパティは、App Designer 内および関数 uifigure
を使用して作成されたアプリ内のメニューでのみ有効です。
ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。
バージョン履歴
R2006a より前に導入R2017b: Label
プロパティは非推奨
R2017b 以降、メニュー ラベルを指定する Label
プロパティの使用は推奨されなくなりました。代わりに、Text
プロパティを使用してください。プロパティ値は同じです。
R2017b: Position
プロパティは非推奨
R2017b 以降、メニュー配置を指定する Position
プロパティの使用は推奨されなくなりました。代わりに、Children
プロパティを変更してメニュー項目を並べ替えてください。詳細については、プログラミングによるアプリのレイアウトを参照してください。
R2017b: Callback
プロパティは非推奨
R2017b 以降、メニュー選択コールバックを割り当てる Callback
プロパティの使用は推奨されなくなりました。代わりに、MenuSelectedFcn
プロパティを使用してください。プロパティ値は同じです。
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)