ドキュメンテーション

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

GUIDE GUI のメニューの作成

GUIDE を使用すると、コンポーネントに付加するコンテキスト メニューと同様にプルダウン メニューで GUI メニュー バーを使用できます。メニュー エディターを使用して、どちらのタイプのメニューも作成できます。[ツール] メニューからメニュー エディターにアクセスするか、[メニュー エディター] ボタン をクリックします。

メニュー バー に対してのメニュー

ドロップダウン メニューを作成する場合、GUIDE は GUI メニュー バーにタイトルを追加します。そのメニューに対してユーザーがメニュー項目を作成できます。各メニュー項目は、カスケードするメニュー (サブメニュー) をもつことができ、これらの項目も同様にカスケードするメニューをもつことができます。

メニューが Figure のドックにどのように影響するか

既定では、GUIDE を使用して GUI を作成する場合、GUIDE は GUI に対してメニュー バーを作成しません。GUI にメニューが不要な場合もありますが、GUI のドックやアンドックを可能にするには、GUI にメニュー バーまたはツール バーを含めなければなりません。これは、以下の図が示すように、ドックがドックのためのアイコンでコントロールされているためです。このアイコンは、メニュー バーまたはツール バーの右上隅付近の小さな曲がった矢印です。

標準メニュー バーをもつ Figure ウィンドウにも、[デスクトップ] メニューがあります。ユーザーはこのメニューから Figure ウィンドウをドックしたりアンドックすることができます。

ドックのための矢印と [デスクトップ][Figure をドック] メニュー項目を表示するには、プロパティ インスペクターを使用して Figure のプロパティ DockControls'on' に設定します。ドックのコントロールを表示するには、MenuBar および/または ToolBar のFigure プロパティを 'figure' に設定しなければなりません。

WindowStyle Figure プロパティもドックの動作に影響します。既定値は 'normal' ですが、'docked' に変更した場合、次の動作が適用されます。

  • GUI は、それが実行しているときデスクトップにドックされた状態で開きます。

  • DockControls プロパティが 'on' に設定され、WindowStyle'docked' の設定を抜けるまでオフにはできません。

  • WindowStyle 'docked' で作成された GUI をアンドックした場合、Figure が (標準またはカスタマイズされた) メニュー バーまたはツール バーを表示しない限り、ドック用の矢印は表示されません。ドックのための矢印がないと、デスクトップからのアンドックはできても、ドックし直すことはできません。

ただし、GUIDE を使用して独自のメニュー バーまたはツール バーを与えると、GUI をドック可能としたい場合にドックのための矢印を表示できます。詳細は、以下の節とGUIDE GUI のツール バーの作成を参照してください。

    メモ:   モーダルなダイアログである GUI (WindowStyle'modal' に設定した Figure) は、メニュー バー、ツール バー、ドックのコントロールをもつことができません。

詳細は、Figure のプロパティDockControlsMenuBarToolBar および WindowStyle プロパティの説明を参照してください。

メニュー バーへの標準メニューの追加

Figure のMenuBar プロパティは、ユーザー GUI が MATLAB® の標準のメニューをメニュー バー上に表示するかどうかをコントロールします。GUIDE は MenuBar の値を none に初期設定します。GUI に MATLAB の標準メニューを表示させたい場合、プロパティ インスペクターを用いて figureMenuBar を設定します。

  • MenuBar の値が none である場合、GUIDE は、作成するメニューのみを表示するメニュー バーを自動的に追加します。

  • MenuBar の値が figure である場合、GUI は MATLAB の標準メニューを表示し、GUIDE は作成するメニューをメニュー バーの右側に追加します。

いずれの場合においても、GUI のユーザーが Figure の DockControls プロパティを 'on' に設定して、GUI のドックのための矢印を使用して、GUI をドックしたり、アンドックすることができます。

メニューの作成

  1. 新しいメニューは、ツール バーの新規メニュー ボタンをクリックすることから始めます。Untitled 1 というメニュー タイトルが、ダイアログ ボックスの左ペインに表示されます。

      メモ:   既定では、GUIDE はメニュー エディターを開くと [メニュー バー] タブを選択しています。

  2. メニュー タイトルをクリックして、メニュー プロパティの選択を右のペインに表示します。

  3. 新規メニュー項目に対する [ラベル] および [タグ] フィールドを編集してください。たとえば、[ラベル]'File'[タグ]'file_menu' に設定します。変更が有効になるように、フィールドの外側をクリックします。

    [ラベル] は、メニュー項目に対するテキスト ラベルを指定する文字列です。ラベルにアンパサンド文字 (&) を表示するには、文字列で 2 つの & 文字を使用します。removedefaultfactory (大文字と小文字の区別あり) は予約語です。これらのいずれかをラベルとして使用するには、文字列の先頭にバックスラッシュ (\) を付けます。たとえば、\removeremove を与えます。

    [タグ] はメニュー オブジェクトに対する識別子の文字列です。これは、メニュー項目を識別するためにコードで使用され、GUI で一意である必要があります。

メニューに項目を追加

ドロップダウン メニューにメニュー項目を作成するには、[新規メニュー項目] ツールを使用してください。

  1. File を選択して、ツール バーの [新規メニュー項目] ボタンをクリックすることによって、File の下に [開く] メニュー項目を追加します。一時的な番号が付いたメニュー項目ラベル Untitled が表示されます。

  2. 新規メニュー項目に対する [ラベル] および [タグ] フィールドを編集してください。たとえば、[ラベル]Open[タグ]menu_file_open に設定します。変更が有効になるように、フィールドの外側をクリックします。

以下を行うこともできます。

  • [アクセラレータ] ポップアップ メニューを使用して、メニュー項目に alphabetic キーボード アクセラレータを選択します。Ctrl とあわせてキーボードをタイプすることは、子のメニューをもたないメニュー項目を選択したものと等価の動作をします。アクセラレータはシステム上で他の目的で使用されるものもあり、結果として他のアクションが起こることもありますので、注意してください。

  • [この項目の上に区切りを入れる] をチェックすると、メニュー項目の上に区切りを表示します。

  • [この項目にチェック マークを入れる] をチェックすると、メニューが最初に開いたときにメニュー項目の隣にチェックが表示されます。チェックは、メニュー項目の現在の状態を示します。コンテキスト メニューに項目を追加の例を参照してください。

  • [この項目を有効にする] をチェックすると、最初にメニューが開いたときこの項目が有効になります。これにより、メニューが最初に開いたときにこの項目が選択可能になります。このオプションをクリアすると、メニューが最初に開いたときにこのメニュー項目は選択不可の状態で表示され、選択はできません。

  • メニュー項目に関連するアクションを実行するルーチン、つまり [Callback] に対する文字列を指定します。GUI を保存していない場合は、既定値は %automatic です。このフィールドを変更せずに GUI を保存すると、GUIDE は [タグ] フィールドと GUI ファイル名の組み合わせを使って値を自動的に設定します。このフィールドの指定とメニュー項目のプログラミングについての詳細は、メニュー項目を参照してください。

    [表示] ボタンは、エディターにコールバック サブ関数を表示します。GUI を保存していない場合、GUIDE は保存するように指示します。

  • [その他のプロパティ] ボタンをクリックすると、プロパティ インスペクターを開き、すべてのメニュー プロパティを変更できます。プロパティについての詳細は、Uimenu のプロパティ を参照してください。

追加のドロップダウン メニュー

追加のドロップダウン メニューを作成するためには、File メニューを作成した場合と同じように、新規メニュー ボタンを使用します。たとえば、次の図は、Edit ドロップダウン メニューも示します。

カスケード メニュー

カスケードするメニューを作成するためには、タイトルになるメニュー項目を選択し、[新規メニュー項目] ボタンをクリックします。下記の例において、Copy はカスケード メニューです。

    メモ:   メニュー項目のプログラミングについての詳細は、メニュー項目を参照してください。

次のメニュー エディターの図は、Figure メニュー バーに対して定義される 3 つのメニューを示します。

ユーザーが GUI を実行すると、メニュー バーにメニューが現れます。

コンテキスト メニュー

コンテキスト メニュー は、メニューが定義されているオブジェクト上を右クリックすると表示されます。メニュー エディターは、コンテキスト メニューの定義を可能とし、レイアウト内のオブジェクトと関連付けます。3 つの手順があります。

  1. 親メニューの作成

  2. コンテキスト メニューに項目を追加

  3. コンテキスト メニューとオブジェクトの関連付け

親メニューの作成

コンテキスト メニュー内のすべての項目は、Figure メニュー バーに表示されないメニューの子です。親メニューを定義するには、

  1. メニュー エディターの [コンテキスト メニュー] タブを選択し、ツール バーから [新規コンテキスト メニュー] を選択します。

  2. メニューを選択し、[Tag] フィールドにコンテキスト メニュー タグを入力します (この例では、axes_context_menu)。

コンテキスト メニューに項目を追加

コンテキスト メニューにメニュー項目を作成するためには、[新規メニュー項目] ボタンを使用してください。

  1. axes_context_menu を選択し、[新規メニュー項目] ツールをクリックすることによって、メニューに [Blue background color] メニュー項目を追加します。一時的な番号が付いたメニュー項目ラベル Untitled が表示されます。

  2. 新規メニュー項目に対する [ラベル] および [タグ] フィールドを編集してください。たとえば、[ラベル]Blue background color[タグ]blue_background に設定します。変更が有効になるように、フィールドの外側をクリックします。

メニュー項目は以下の方法でも変更できます。

  • [この項目の上に区切りを入れる] をチェックすると、メニュー項目の上に区切りを表示します。

  • [この項目にチェック マークを入れる] をチェックすると、メニューが最初に開いたときにメニュー項目の隣にチェックが表示されます。チェックは、メニュー項目の現在の状態を示します。コンテキスト メニューに項目を追加の例を参照してください。コードの例は、メニュー項目のチェック状態を更新する方法を参照してください。

  • [この項目を有効にする] をチェックすると、最初にメニューが開いたときこの項目が有効になります。これにより、メニューが最初に開いたときにこの項目が選択可能になります。このオプションをクリアすると、メニューが最初に開いたときにこのメニュー項目は選択不可の状態で表示され、選択はできません。

  • メニュー項目に関連する動作を実行するメニューで [Callback] を指定します。GUI を保存していない場合は、既定値は %automatic です。このフィールドを変更せずに GUI を保存すると、GUIDE は [タグ] フィールドと GUI ファイル名の組み合わせを使って、コールバックをコード ファイル内に自動的に作成します。コールバック名は、メニュー エディターの [Callback] フィールドに表示されませんが、メニュー項目を選択するとコールバックが実行します。

    コールバックとして動作するために [Callback] フィールドに引用符で囲まれていない文字列を入力することもできます。その際には、任意の有効な MATLAB 表現やコマンドを使用できます。たとえば、以下の文字列

    set(gca, 'Color', 'y')
    は、現在の座標軸の背景色を黄色に設定します。ただし、この操作を実行するには、コールバックを GUI コード ファイルに配置することをお勧めします。これにより、いくつかの Figure または座標軸が存在する場合必ずしも確実であるとは限らない、gca は利用されません。次に示すのは、GUI コード ファイルの関数としてコーディングされた、このコールバックの例です。
    function axesyellow_Callback(hObject, eventdata, handles)
    % hObject    handle to axesyellow (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    set(handles.axes1,'Color','y')
    このコードは、コンテキスト メニューが付加されているオブジェクトが何であっても、Tag axes1 を用いて GUI の座標軸の背景色を設定します。

    メニュー エディターでコールバック文字列を入力すると、コード ファイルに項目のコールバックが保存されている場合は、そのコールバックが上書きされます。[Callback] フィールドに入力した文字列を削除すると、GUI が実行されてこの項目が選択された場合には、この項目に対する GUI コード ファイルのコールバック (存在する場合) が実行されます。

    このフィールドの指定とメニュー項目のプログラミングについての詳細は、メニュー項目を参照してください。GUIDE でのコンテキスト メニューのプログラミングの他の例は、GUIDE GUI での同期データの表現を参照してください。

    [表示] ボタンは、エディターにコールバック サブ関数を表示します。GUI を保存していない場合、GUIDE は保存するように指示します。

  • プロパティ インスペクターを開きます。プロパティ インスペクターでは、[その他のプロパティ] ボタンをクリックすることで、コールバックを除くすべてのメニュー プロパティを変更できます。プロパティについての詳細は、Uicontextmenu のプロパティ を参照してください。

コンテキスト メニューとオブジェクトの関連付け

  1. レイアウト エディターで、コンテキスト メニューを定義するオブジェクトを選択してください。

  2. プロパティ インスペクターを使用して、このオブジェクトのUIContextMenu プロパティを希望するコンテキスト メニュー名に設定してください。

次の図は、Tag プロパティ axes1 をもつ axes オブジェクトに対する UIContextMenu プロパティを 示します。

GUI コード ファイルで、コンテキスト メニューの各項目に対応するローカル コールバック関数を完成させます。各コールバックは、ユーザーが、関連するコンテキスト メニュー項目を選択した場合に実行します。構文の定義についての詳細は、メニュー項目を参照してください。

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