Main Content

dialog

空のモーダル ダイアログ ボックスを作成

説明

d = dialog は空のダイアログ ボックスを作成し、Figure オブジェクト d を返します。関数 uicontrol を使用して、ダイアログにユーザー インターフェイス コントロールを追加します。

d = dialog(Name,Value) は 1 つ以上の Figure プロパティ名と対応する値を指定します。この構文を使用して、既定のプロパティをオーバーライドします。

すべて折りたたむ

関数 uicontrol を使用して、ダイアログにユーザー インターフェイス コントロールを追加します。たとえば、テキストとボタンを含むダイアログを表示するプログラム ファイル mydialog.m を作成します。

function mydialog
    d = dialog('Position',[300 300 250 150],'Name','My Dialog');

    txt = uicontrol('Parent',d,...
               'Style','text',...
               'Position',[20 80 210 40],...
               'String','Click the close button when you''re done.');

    btn = uicontrol('Parent',d,...
               'Position',[85 20 70 25],...
               'String','Close',...
               'Callback','delete(gcf)');
end

次に、コマンド ウィンドウから関数 mydialog を実行します。

mydialog

Dialog box with the title "My Dialog, the text "Click the close button when you're done", and a button labeled "Close"

関数 uiwait を使用して、ダイアログ ボックス内でのユーザー選択に基づく出力を返します。たとえば、以下のタスクを実行するプログラム ファイル choosedialog.m を作成します。

  • 関数 dialog を呼び出して、指定のサイズ、位置およびタイトル "Select One" をもつダイアログを作成

  • 関数 uicontrol を 3 回呼び出して、テキスト、ポップアップ メニューとボタンをそれぞれ追加

  • ボタンのコールバック関数として動作する関数 popup_callback を定義

  • 関数 uiwait を呼び出して、ユーザーがダイアログを閉じるまで待機してから出力をコマンド ラインに返す

function choice = choosedialog

    d = dialog('Position',[300 300 250 150],'Name','Select One');
    txt = uicontrol('Parent',d,...
           'Style','text',...
           'Position',[20 80 210 40],...
           'String','Select a color');
       
    popup = uicontrol('Parent',d,...
           'Style','popup',...
           'Position',[75 70 100 25],...
           'String',{'Red';'Green';'Blue'},...
           'Callback',@popup_callback);
       
    btn = uicontrol('Parent',d,...
           'Position',[89 20 70 25],...
           'String','Close',...
           'Callback','delete(gcf)');
       
    choice = 'Red';
       
    % Wait for d to close before running to completion
    uiwait(d);
   
       function popup_callback(popup,event)
          idx = popup.Value;
          popup_items = popup.String;
          choice = char(popup_items(idx,:));
       end
end

コマンド ウィンドウから関数 choosedialog を実行します。次に、ダイアログで色を選択します。

color = choosedialog

Dialog box with the title "Select One", the text "Select a color", a drop-down list with the option "Blue" selected, and a button labeled "Close"

ダイアログを閉じると、choosedialog は最後に選択した色を返します。

color =

Blue

メモ

関数 uiwait は、MATLAB® スレッドをブロックします。uiwait は単純なモーダル ダイアログでは良好に動作しますが、高度なアプリケーションでの使用は推奨されません。

入力引数

すべて折りたたむ

名前と値の引数

例: dialog('WindowStyle','normal')WindowStyle プロパティを 'normal' に設定します。

ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Figure のプロパティ を参照してください。

描画可能領域の位置とサイズ。[left bottom width height] の形式のベクトルとして指定します。この領域には、Figure の境界線、タイトル バー、メニュー バーおよびツール バーは含まれません。

次の表で、Position ベクトルの各要素について説明します。

要素説明
leftプライマリ ディスプレイの左端から、ウィンドウ内側の左端までの距離。この値は、複数のモニターがあるシステムでは負の値になる場合があります。

Figure がドッキングしている場合、この値は、MATLAB デスクトップ内の Figure パネルを基準にした値になります。
bottomプライマリ ディスプレイの下端から、ウィンドウ内側の下端までの距離。この値は、複数のモニターがあるシステムでは負の値になる場合があります。

Figure がドッキングしている場合、この値は、MATLAB デスクトップ内の Figure パネルを基準にした値になります。
widthdialog の内側の左右の端の間の距離。
heightウィンドウ内側の上下の端の距離。

すべての測定値は、Units プロパティで指定した単位で表されます。

Figure がドッキングしているときには、Figure の Position プロパティは指定できません。

MATLAB Online™ では、Position ベクトルの bottom 要素および left 要素は無視されます。

境界線、タイトル バー、メニュー バーおよびツール バーを含むウィンドウ全体を配置するには、OuterPosition プロパティを使用します。

メモ

Windows® オペレーティング システムでは、最小ウィンドウ幅と最大ウィンドウ サイズが適用されます。これらの範囲を超える Figure サイズを指定した場合、表示される Figure は指定されたサイズではなく、これらの範囲に従います。

ボタンダウン コールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは Figure の空白の領域をクリックしたときに必ず実行されます。

コールバックのプロパティ値を関数ハンドル、cell 配列または文字ベクトルとして指定する方法の詳細については、コールバック関数の指定を参照してください。

ユーザーが修飾キーを押したかどうかを判定するには、SelectionType プロパティを使用します。

ウィンドウ スタイル。次のいずれかとして指定します。

  • 'modal' — この Figure は、既存のすべての Figure ウィンドウの上に表示されます。この一番上に表示された Figure が存在してモーダルな状態である限り、既存のウィンドウへのアクセスができなくなります。ただし、モーダルな Figure の後に作成された新しい Figure は表示されます。

    複数のモーダルなウィンドウが存在する場合、最後に作成されたウィンドウがフォーカスされ、他のすべてのウィンドウの前面に表示されます。この状態は、不可視になるか、通常のウィンドウ スタイルに戻るか、削除されるまで継続します。継続が終了した場合、フォーカスは、最後にフォーカスされたウィンドウに戻ります。

  • 'normal' — Figure ウィンドウは他のウィンドウから独立しており、この Figure の表示中に他のウィンドウにアクセスできます。

  • 'docked' — Figure はデスクトップまたはドキュメント ウィンドウに表示されます。WindowStyle プロパティが 'docked' に設定されている場合には、DockControls プロパティを 'off' に設定できません。'docked' オプションは、MATLAB Online でサポートされていません。

メモ

WindowStyle プロパティにはいくつかの重要な特徴と推奨されるベスト プラクティスがあります。

  • UI ウィンドウを作成するときは、常に WindowStyle プロパティを指定します。さらに Figure の ResizePosition または OuterPosition プロパティも設定する場合は、WindowStyle プロパティを最初に設定します。

  • Figure の WindowStyle プロパティは、Figure が可視な場合や子オブジェクトを含む場合を含め、いつでも変更できます。ただし、一部のシステムではノーマル ウィンドウとモーダル ウィンドウの実装によっては、このプロパティを設定することで、Figure の点滅や非表示後に再表示される現象が発生する場合もあります。視覚的に最良な結果を得るには、WindowStyle プロパティの設定は、Figure の作成時または非表示のときに行います。

  • Figure で reset を呼び出しても WindowStyle プロパティ値は変更されません。

モーダル ウィンドウ スタイルの動作

WindowStyle'modal' に設定されている場合、Figure ウィンドウが可視である限り、Figure ウィンドウはすべての MATLAB ウィンドウ上のすべてのキーボード操作とマウス操作をトラップします。MATLAB 以外のアプリケーションのウィンドウには影響しません。

モーダルな Figure にフォーカスがあるときに Ctrl + C を入力すると、Figure は 'normal' WindowStyle プロパティ設定に戻ります。これによりユーザーはコマンド ラインに入力できます。

WindowStyle プロパティが 'modal' に、Visible プロパティが 'off' に設定された Figure は、MATLAB が表示しない限りモーダル動作になりません。このためモーダル ウィンドウを破棄する代わりに、後で再利用するために非表示にすることができます。

モーダルな Figure はメニューの子、組み込みのメニュー、ツール バーを表示しません。しかし、モーダルな Figure 内にメニューを作成したり、メニューの子をもつ Figure で WindowStyle プロパティの設定を 'modal' に変更したりするのは誤りではありません。その Menu オブジェクトは存在し、Figure はそれを維持します。Figure の WindowStyle プロパティを 'normal' にリセットすると、そのメニューが表示されます。

出力引数

すべて折りたたむ

ダイアログ ウィンドウ。次のプロパティ値が設定された Figure オブジェクトとして返されます。

プロパティ
ButtonDownFcn'if isempty(allchild(gcbf)), close(gcbf), end'
Colormap[]
DockControls'off'
HandleVisibility'callback'
IntegerHandle'off'
InvertHardcopy'off'
MenuBar'none'
Number[]
NumberTitle'off'
PaperPositionMode'auto'
Resize'off'
WindowStyle'modal'

バージョン履歴

R2006a より前に導入