ドキュメンテーション

目次

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

GUIDE GUI のモーダル ダイアログ ボックス

例について

この例では、閉じるボタンのある GUI と連動するモーダル ダイアログ ボックスの作成方法を説明します。閉じるボタンがクリックされると、モーダル ダイアログ ボックスが開き、「Are you sure you want to close?」というメッセージが表示されるようにします。

クローズ確認ダイアログ ボックスの設定

  1. [ホーム] タブの [環境] セクションで、[設定][GUIDE][コンポーネント パレットに名前を表示] をクリックします。

  2. コマンド ウィンドウで「guide」と入力します。

  3. [GUIDE のクイック スタート] ダイアログ ボックスの [新しい GUI を作成] タブで、[GUIDE のテンプレート][モーダル クエスチョン ダイアログ] を選択します。次に、[OK] をクリックします。

  4. レイアウト エディターで、スタティック テキストDo you want to create a question dialog? を右クリックして [プロパティ インスペクター] を選択します。

  5. String プロパティの値を「Are you sure you want to close?」に変更します。

  6. レイアウト エディターで [ファイル][保存] を選択します。

  7. [名前を付けて保存] ダイアログ ボックスの [ファイル名] フィールドに「modaldlg.fig」と入力します。

[Close] ボタンをもつ GUI の設定

[Close] ボタンをもつ別の GUI を設定するには、以下の手順に従います。

  1. GUIDE レイアウト エディターで [ファイル][新規作成] を選択します。

  2. [GUIDE のクイック スタート] ダイアログ ボックスで、[GUIDE のテンプレート][空白の GUI (既定)] を選択します。次に、[OK] をクリックします。

  3. 左側のコンポーネント パレットからレイアウト エリアにプッシュ ボタンをドラッグします。

  4. プッシュ ボタンを右クリックして [プロパティ インスペクター] を選択します。

  5. String プロパティの値を「Close」に変更します。

  6. Tag プロパティの値を「close_pushbutton」に変更します。

  7. [ファイル] メニューの [保存] を選択します。

  8. [名前を付けて保存] ダイアログ ボックスの [ファイル名] フィールドに「closedlg.fig」と入力します。次に [保存] をクリックします。

    コード ファイル closedlg.m がエディターで開きます。

    [エディター] タブの [ナビゲート] セクションで、[移動] をクリックして [close_pushbutton_Callback] を選択します。

    以下の、[Close] ボタンのコールバックに対する生成コードが、エディターに表示されます。

    	% --- Executes on button press in close_pushbutton.
    function close_pushbutton_Callback(hObject, eventdata, handles)
    % hObject    handle to close_pushbutton (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
  9. 上記のコメントの後に、以下を追加します。

    % Get the current position of the GUI from the handles structure
    % to pass to the modal dialog.
    pos_size = get(handles.figure1,'Position');
    
    % Call modaldlg with the argument 'Position'.
    user_response = modaldlg('Title','Confirm Close');
    switch user_response
    case {'No'}
    	% take no action
    case 'Yes'
    	% Prepare to close GUI application window
    	%                  .
    	%                  .
    	%                  .
    	delete(handles.figure1)
    end
  10. closedlg.m を保存します。

クローズ確認 GUI の実行

  1. レイアウト エディター ツール バーの実行ボタン をクリックします。

  2. [closedlg] ダイアログ ボックスの [Close] プッシュ ボタンをクリックします。

    モーダル ダイアログ ボックスが開きます。

  3. [はい] または [いいえ] をクリックします。

    • [はい] をクリックすると、両方のダイアログ ボックスが閉じます。

    • [いいえ] をクリックすると、[Confirm Close] ダイアログ ボックスのみが閉じます。

クローズ確認 GUI の動作

この節では、GUI の動作について説明します。

  1. [Close] ボタンをクリックすると、close_pushbutton_Callback は以下を実行します。

    1. 次のコマンドによって handles 構造体から GUI の現在の位置を取得します。

      pos_size = get(handles.figure1,'Position')
    2. 次のコマンドによってモーダル ダイアログ ボックスを呼び出します。

      user_response = modaldlg('Title','Confirm Close');

        ティップ   これは、プロパティ値のペアで GUI を呼び出す例です。この場合、Figure プロパティは、'Title' であり、その値は、文字列 'Confirm Close' です。この構文を用いて modaldlg を開くと、ダイアログ ボックスの上部にテキスト “Confirm Close” が開きます。

  2. モーダル ダイアログ ボックスを呼び出す GUI から得られた 'Position' を用いてモーダル ダイアログを開きます。

  3. モーダル modaldlg コード ファイルの opening 関数は、次の動作を行います。

    • ダイアログ ボックスをモーダルにします。

    • uiwait コマンドを実行します。これにより、ダイアログ ボックスは、[Yes] または [No]、あるいはウィンドウの境界の閉じるボタン (X) がクリックされるまで待ちます。

  4. 2 つのプッシュ ボタンのいずれかをクリックすると、そのプッシュ ボタンのコールバックによって以下が行われます。

    • handles 構造体の出力フィールドを更新します。

    • uiresume を実行して、uiwait が呼び出されたところで opening 関数のコントロールを返します。

  5. 出力関数が呼び出されます。これは、出力引数として文字列 Yes あるいは No を返し、次のコマンドでダイアログ ボックスを削除します。

    delete(handles.figure1)

  6. [Close] ボタンをもつ GUI がコントロールを取り戻す場合、この GUI は、文字列 Yes あるいは No を受け取ります。文字列が 'No' の場合は、何も起こりません。文字列が 'Yes' の場合、[Close] ボタンのコールバックでは次のコマンドによって GUI を閉じます。

    delete(handles.figure1)
この情報は役に立ちましたか?