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

questdlg

質問ダイアログ ボックスの作成

App Designer を使用しているか、関数 uifigure でアプリを作成している場合は、代わりに uiconfirm を使用してください。詳細については、GUIDE アプリから App Designer への移行を参照してください。

説明

answer = questdlg(quest) は、質問を表示してユーザーの回答 ('Yes''No''Cancel''') を返すモーダル ダイアログ ボックスを作成します。

既定では、このダイアログ ボックスには標準のボタンが 3 つあり、それぞれ [はい][いいえ][キャンセル] というラベルが付いています。

  • ユーザーがいずれかのボタンをクリックすると、answer の値は押されたボタンのラベルと同じになります。

  • ユーザーがダイアログ ボックスのタイトル バーの [閉じる] ボタン (X) をクリックした場合、または Esc キーを押した場合、answer の値は空の文字ベクトル (' ') になります。

  • ユーザーが Return キーを押した場合、answer の値は既定のボタン選択のラベルと同じになります。この場合は、'Yes' になります。

answer = questdlg(quest,dlgtitle) は、ダイアログ ボックスのタイトルを指定します。

answer = questdlg(quest,dlgtitle,defbtn) は、ユーザーがキーボードの Return キーを押したときにどのボタンが既定になるかを指定します。defbtn の値は、ボタン ラベルのいずれかと一致していなければなりません。

answer = questdlg(quest,dlgtitle,btn1,btn2,defbtn) は、標準ボタンのうち 2 つのボタンをカスタマイズし、btn1 および btn2 の値でこれらのボタンのラベルを設定します。3 番目の標準ボタンは削除されます。defbtn の値は btn1 または btn2 の値と一致していなければなりません。

ユーザーがキーボードの Return キーを押したときに defbtn の値がどのボタン ラベルとも一致していない場合、ダイアログ ボックスは開いたままとなります。

answer = questdlg(quest,dlgtitle,btn1,btn2,btn3,defbtn) は、3 番目の標準ボタンをカスタマイズし、btn3 の値と一致するラベルを設定します。

answer = questdlg(quest,dlgtitle,opts) は、既定のボタン選択と、質問のテキストを解釈するために TeX を使用するかどうかを指定するオプション構造体を指定します。

answer = questdlg(quest,dlgtitle,btn1,btn2,opts) は 2 つの標準ボタンをカスタマイズし、btn1 および btn2 の値と一致するラベルを設定します。3 番目の標準ボタンは削除されます。

answer = questdlg(quest,dlgtitle,btn1,btn2,btn3,opts) は、3 番目の標準ボタンをカスタマイズし、btn3 の値と一致するラベルを設定します。

質問ダイアログ ボックスでのユーザーの選択を整数としてエンコード

answer = questdlg('Would you like a dessert?', ...
	'Dessert Menu', ...
	'Ice cream','Cake','No thank you','No thank you');
% Handle response
switch answer
    case 'Ice cream'
        disp([answer ' coming right up.'])
        dessert = 1;
    case 'Cake'
        disp([answer ' coming right up.'])
        dessert = 2;
    case 'No thank you'
        disp('I''ll bring you your check.')
        dessert = 0;
end

dessert に割り当てられた戻り値にアクセスするには、例を関数として保存します。たとえば、次の行をコードの最初の行にして、関数 choosedessert を作成します。

function dessert = choosedessert

TeX を使用してダイアログ ボックスの質問を書式設定

opts.Interpreter = 'tex';
% Include the desired Default answer
opts.Default = 'Don''t know';
% Use the TeX interpreter to format the question
quest = 'Is \Sigma(\alpha - \beta) < 0?';
answer = questdlg(quest,'Boundary Condition',...
                  'Yes','No','Don''t know',opts)

入力引数

すべて折りたたむ

ダイアログ ボックスの質問。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。この質問は、ダイアログ ボックス内に収まるように自動的に折り返されます。

例: 'What is the velocity?'

ダイアログ ボックスのタイトル。文字ベクトルまたは string スカラーとして指定します。

例: 'Configuration'

既定のボタンの選択。文字ベクトルまたは string スカラーとして指定します。既定のボタンの選択は、ユーザーがダイアログ ボックスでボタンをクリックする代わりにキーボードの Return キーを押した場合に MATLAB® が返す値です。既定の選択は、ダイアログ ボックスのボタン ラベルのいずれかと同じでなければなりません。引数 defbtn の値がボタンのラベルと一致しない場合、ユーザーがキーボードの Enter キーを押してもダイアログ ボックスは開いたままとなります。

例: 'Cancel'

最初のボタンのカスタマイズしたラベル。文字ベクトルまたは string スカラーとして指定します。

例: 'Start'

2 番目のボタンのカスタマイズしたラベル。文字ベクトルまたは string スカラーとして指定します。

例: 'Reset'

3 番目のボタンのカスタマイズしたラベル。文字ベクトルまたは string スカラーとして指定します。

例: 'Test'

ダイアログ ボックスの設定。構造体として指定します。構造体は、どのボタンが既定のボタン選択であるか、および質問のテキストを解釈するために TeX を使用するかどうかを指定します。

opts 構造体は次の表に示すフィールドの両方を含んでいなければなりません。構造体には追加のフィールドを含めることもできますが、関数 questdlg はそのようなフィールドを使用しません。

フィールド

Default

既定のボタンの選択。文字ベクトルまたは string スカラーとして指定します。既定の選択は、ダイアログ ボックスのボタン ラベルのいずれかと同じでなければなりません。

既定のボタンは、ユーザーがダイアログ ボックスのボタンをクリックする代わりにキーボードの Return キーを押したときに MATLAB が返すボタンの値です。

Default フィールドの値がどのボタン ラベルとも一致しない場合、このダイアログ ボックスはユーザーがキーボードの Enter キーを押しても応答しません。

Interpreter

'none' (既定) または 'tex''tex' に設定されている場合、プロンプトは TeX を使用してレンダリングされます。ボタン ラベルとダイアログ ボックスのタイトルには影響しません。

TeX マークアップを使用して、上付き文字や下付き文字の追加、フォントのタイプや色の変更、question テキストへの特殊文字の挿入を行うことができます。

修飾子の効果はテキストの末尾まで適用されます。上付き文字と下付き文字は例外であり、次の 1 文字または中かっこで囲まれた文字にのみ適用されます。Interpreter プロパティを 'tex' に設定した場合にサポートされる修飾子は次のとおりです。

修飾子説明
^{ }上付き文字'text^{superscript}'
_{ }下付き文字'text_{subscript}'
\bf太字フォント'\bf text'
\itイタリック フォント'\it text'
\sl斜体フォント (通常はイタリック フォントと同じ)'\sl text'
\rm標準フォント'\rm text'
\fontname{specifier}フォント名 — specifier をフォント ファミリの名前に置き換えます。これは他の修飾子と組み合わせて使用できます。'\fontname{Courier} text'
\fontsize{specifier}フォント サイズ — specifier をポイント単位の数値スカラーに置き換えます。'\fontsize{15} text'
\color{specifier}フォントの色 — specifier を、redgreenyellowmagentablueblackwhitegraydarkGreenorangelightBlue の色のいずれかに置き換えます。'\color{magenta} text'
\color[rgb]{specifier}フォントのカスタムの色 — specifier を RGB 3 成分に置き換えます。'\color[rgb]{0,0.5,0.5} text'

次の表に、Interpreter プロパティが 'tex' に設定されている場合にサポートされる特殊文字を示します。

文字列記号文字列記号文字列記号

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

例: opts.Default = 'Cancel'

例: opts.Interpreter = 'tex'

詳細

すべて折りたたむ

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

モーダル ダイアログ ボックスでは、応答する前に他の MATLAB ウィンドウの操作ができません。

R2006a より前に導入