dialog
空のモーダル ダイアログ ボックスを作成
説明
は 1 つ以上の d
= dialog(Name,Value
)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
出力を返すダイアログ
関数 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
ダイアログを閉じると、choosedialog
は最後に選択した色を返します。
color = Blue
メモ
関数 uiwait
は、MATLAB® スレッドをブロックします。uiwait
は単純なモーダル ダイアログでは良好に動作しますが、高度なアプリケーションでの使用は推奨されません。
入力引数
名前と値の引数
例: dialog('WindowStyle','normal')
は WindowStyle
プロパティを 'normal'
に設定します。
ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Figure のプロパティ を参照してください。
Position
— 描画可能領域の位置とサイズ
[left bottom width height]
描画可能領域の位置とサイズ。[left bottom width height]
の形式のベクトルとして指定します。この領域には、Figure の境界線、タイトル バー、メニュー バーおよびツール バーは含まれません。
次の表で、Position
ベクトルの各要素について説明します。
要素 | 説明 |
---|---|
left | プライマリ ディスプレイの左端から、ウィンドウ内側の左端までの距離。この値は、複数のモニターがあるシステムでは負の値になる場合があります。 Figure がドッキングしている場合、この値は、MATLAB デスクトップ内の Figure パネルを基準にした値になります。 |
bottom | プライマリ ディスプレイの下端から、ウィンドウ内側の下端までの距離。この値は、複数のモニターがあるシステムでは負の値になる場合があります。 Figure がドッキングしている場合、この値は、MATLAB デスクトップ内の Figure パネルを基準にした値になります。 |
width | dialog の内側の左右の端の間の距離。 |
height | ウィンドウ内側の上下の端の距離。 |
すべての測定値は、Units
プロパティで指定した単位で表されます。
Figure がドッキングしているときには、Figure の Position
プロパティは指定できません。
MATLAB Online™ では、Position
ベクトルの bottom
要素および left
要素は無視されます。
境界線、タイトル バー、メニュー バーおよびツール バーを含むウィンドウ全体を配置するには、OuterPosition
プロパティを使用します。
メモ
Windows® オペレーティング システムでは、最小ウィンドウ幅と最大ウィンドウ サイズが適用されます。これらの範囲を超える Figure サイズを指定した場合、表示される Figure は指定されたサイズではなく、これらの範囲に従います。
ButtonDownFcn
— ボタンダウン コールバック
''
(既定値) | 関数ハンドル | cell 配列 | 文字ベクトル
ボタンダウン コールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバックは Figure の空白の領域をクリックしたときに必ず実行されます。
コールバックのプロパティ値を関数ハンドル、cell 配列または文字ベクトルとして指定する方法の詳細については、コールバック関数の指定を参照してください。
ユーザーが修飾キーを押したかどうかを判定するには、SelectionType
プロパティを使用します。
WindowStyle
— ウィンドウ スタイル
'modal'
(既定値) | 'normal'
| 'docked'
ウィンドウ スタイル。次のいずれかとして指定します。
'modal'
— この Figure は、既存のすべての Figure ウィンドウの上に表示されます。この一番上に表示された Figure が存在してモーダルな状態である限り、既存のウィンドウへのアクセスができなくなります。ただし、モーダルな Figure の後に作成された新しい Figure は表示されます。複数のモーダルなウィンドウが存在する場合、最後に作成されたウィンドウがフォーカスされ、他のすべてのウィンドウの前面に表示されます。この状態は、不可視になるか、通常のウィンドウ スタイルに戻るか、削除されるまで継続します。継続が終了した場合、フォーカスは、最後にフォーカスされたウィンドウに戻ります。
'normal'
— Figure ウィンドウは他のウィンドウから独立しており、この Figure の表示中に他のウィンドウにアクセスできます。'docked'
— Figure はデスクトップまたはドキュメント ウィンドウに表示されます。WindowStyle
プロパティが'docked'
に設定されている場合には、DockControls
プロパティを'off'
に設定できません。'docked'
オプションは、MATLAB Online でサポートされていません。
メモ
WindowStyle
プロパティにはいくつかの重要な特徴と推奨されるベスト プラクティスがあります。
UI ウィンドウを作成するときは、常に
WindowStyle
プロパティを指定します。さらに Figure のResize
、Position
または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'
にリセットすると、そのメニューが表示されます。
出力引数
d
— ダイアログ ウィンドウ
Figure
オブジェクト
ダイアログ ウィンドウ。次のプロパティ値が設定された 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 より前に導入
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)