このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
uimenu
メニューまたはメニュー項目の作成
説明
m = uimenu
は現在の Figure にメニューを作成し、Menu
オブジェクトを返します。利用可能な Figure がない場合は、MATLAB® が関数 figure
を呼び出して Figure を作成します。
m = uimenu(
は、1 つ以上の名前と値のペアの引数を使用してメニューのプロパティ値を指定します。Name,Value
)
m = uimenu(
は、親コンテナーと 1 つ以上のプロパティ値を指定します。parent
,Name,Value
)
例
既定のメニュー バーのメニュー
既定のメニュー バーが表示される Figure を作成します。メニューとメニュー項目を追加します。
f = figure('Toolbar','none'); m = uimenu('Text','Options'); mitem = uimenu(m,'Text','Reset');
キーボード ショートカットとコールバックを含むメニュー項目
キーボード ショートカットを含むメニュー項目をメニュー バーに追加し、メニュー項目を選択すると実行されるコールバックを定義します。
まず、importmenu.m
というプログラム ファイルを作成します。プログラム ファイル内で次を行います。
Figure を作成します。
[Import] というメニューを追加します。テキスト ラベルを
'&Import'
と指定して、メニューのニーモニックのキーボード ショートカットを作成します。メニュー項目を作成し、ニーモニックとアクセラレータのキーボード ショートカットを指定します。
ユーザーがメニュー項目をクリックするかニーモニックまたはアクセラレータのキーボード ショートカットを使用したときに実行される
MenuSelectedFcn
コールバックを定義します。
プログラム ファイルを実行します。
function importmenu fig = uifigure; m = uimenu(fig,'Text','&Import'); mitem = uimenu(m,'Text','&Text File'); mitem.Accelerator = 'T'; mitem.MenuSelectedFcn = @MenuSelected; function MenuSelected(src,event) file = uigetfile('*.txt'); end end
メニューとメニュー項目は次の方法でキーボードを使用して操作できます。
Alt+I を押すと、[Import] メニューが選択されます。
Alt+I+T を押すと、[Text File] メニュー項目が選択されてコールバックが実行されます。
アクセラレータ Ctrl+T を使用すると、[Text File] メニュー項目が選択されてコールバックが実行されます。
[Text File] メニュー項目を選択すると、拡張子のフィールドがテキスト ファイルにフィルター処理された状態で [Select File to Open] ダイアログ ボックスが開きます。
オンの状態のメニュー項目と共有コールバックを含むメニュー
オンとオフを切り替えて座標軸にグリッドを表示するかどうかを選択できるオンの状態のメニュー項目を作成します。コールバックをプッシュ ボタンと共有して、ボタンをクリックしたときにもグリッドの表示と非表示が切り替わるようにします。
まず、plotOptions.m
というプログラム ファイルを作成します。プログラム ファイル内で次を行います。
プッシュ ボタンとグリッドを表示する座標軸を含む Figure を作成します。
ニーモニックを含むメニューとメニュー項目を追加します。メニュー項目をオンにするように指定します。
ユーザーがメニュー項目を操作したときにグリッドの表示と非表示を切り替える
MenuSelectedFcn
コールバックを定義します。メニュー項目と同じコールバック関数を使用する
ButtonPushedFcn
を定義します。
プログラム ファイルを実行します。
function plotOptions fig = uifigure; ax = uiaxes(fig); grid(ax); btn = uibutton(fig,'Text','Show Grid'); btn.Position = [155 325 100 20]; m = uimenu(fig,'Text','&Plot Options'); mitem = uimenu(m,'Text','Show &Grid','Checked','on'); mitem.MenuSelectedFcn = @ShowGrid; btn.ButtonPushedFcn = @ShowGrid; function ShowGrid(src,event) grid(ax); if strcmp(mitem.Checked,'on') mitem.Checked = 'off'; else mitem.Checked = 'on'; end end end
入力引数
parent
— 親コンテナー
Figure
オブジェクト | Menu
オブジェクト | ContextMenu
オブジェクト
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: m = uimenu('Text','Open')
は、メニューを作成してラベルを 'Open'
に設定します。
メモ
以下にリストするプロパティは、利用できるプロパティの一部です。完全なリストについては、Menu のプロパティ を参照してください。
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'
に設定されている。そのアクセラレータの値が、同じアプリ内の異なるメニュー項目にまだ代入されていない。
MenuSelectedFcn
— メニュー選択コールバック
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
メニュー選択コールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックは、メニュー項目の位置および操作のタイプに従って応答します。
メニューを左クリックすると、メニューが展開し、そのコールバックがトリガーされます。
いずれかのメニューが展開しているときに他の親メニュー (または最上位メニュー) にカーソルを合わせると、そのメニューが展開し、そのコールバックがトリガーされます。
メモ
メニュー項目を動的に変更するためにコールバックを使用しないでください。コールバックでメニュー項目の削除、追加、および置き換えを行うと、メニューが空白になることがあります。代わりに、Visible
プロパティを使用してメニュー項目の非表示と表示を設定します。また、Enable
プロパティを設定してメニュー項目の有効化や無効化を行うこともできます。メニュー項目を完全に埋めるには、これらの項目を削除して、コールバックの外部に作成してください。
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
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 つ以上の子メニュー項目をもつメニュー項目
バージョン履歴
R2006a より前に導入
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)