Main Content

questdlg

创建问题对话框

说明

注意

在 App 设计工具和使用 uifigure 函数创建的 App 中,推荐使用 uiconfirm 而不是 questdlg,因为它提供额外的自定义选项。

answer = questdlg(quest) 创建一个模态对话框,其中提出问题并返回用户的回答 - 'Yes''No''Cancel'''

默认情况下,该对话框有三个标准按钮,其标签分别为取消

  • 如果用户点击其中一个按钮,则 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) 通过用 btn1btn2 的值作为按钮标签来自定义两个标准按钮。第三个标准按钮则被删除。defbtn 值必须与 btn1btn2 的值匹配。

如果用户按下键盘上的 Return 键,并且 defbtn 值与任一按钮标签都不匹配,则对话框保持打开状态。

示例

answer = questdlg(quest,dlgtitle,btn1,btn2,btn3,defbtn) 使用与 btn3 的值匹配的标签自定义第三个标准按钮。

answer = questdlg(quest,dlgtitle,opts) 指定一个 options 结构体来指定默认按钮选择以及是否使用 TeX 来解释问题文本。

answer = questdlg(quest,dlgtitle,btn1,btn2,opts) 自定义两个标准按钮,其标签分别匹配 btn1btn2 的值。第三个标准按钮则被删除。

示例

answer = questdlg(quest,dlgtitle,btn1,btn2,btn3,opts) 使用与 btn3 的值匹配的标签自定义第三个标准按钮。

示例

全部折叠

创建一个包含三个自定义按钮的问题对话框。根据用户点击的按钮,对 dessert 变量赋予不同值。

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

Question dialog box with title "Dessert Menu". The dialog box has a question mark icon with text "Would you like a dessert?" and option buttons labeled "Ice cream", "Cake", and "No thank you". The "No thank you" button is highlighted.

要获取赋予 dessert 的返回值,请将示例保存为函数。例如,将以下代码作为第一行,创建函数 choosedessert

function dessert = choosedessert

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)

Question dialog box with title "Boundary Condition". The dialog box contains a question mark icon, a formatted equation, and option buttons labeled "Yes", "No", and "Don't know". The "Don't know" button is highlighted.

输入参数

全部折叠

对话框中的问题,指定为字符向量、字符向量元胞数组或字符串数组。问题会自动换行以适应对话框大小。

示例: 'What is the velocity?'

对话框标题,指定为字符向量或字符串标量。

示例: 'Configuration'

默认按钮选择,指定为字符向量或字符串标量。默认按钮选择是用户按下键盘上的 Return 键而不是点击对话框中的按钮时 MATLAB® 返回的值。默认选择必须与对话框按钮标签之一相同。如果 defbtn 参数值与任一按钮标签都不匹配,则用户按下键盘上的 Enter 键时,对话框保持打开状态。

示例: 'Cancel'

第一个自定义按钮标签,指定为字符向量或字符串标量。

示例: 'Start'

第二个自定义按钮标签,指定为字符向量或字符串标量。

示例: 'Reset'

第三个自定义按钮标签,指定为字符向量或字符串标量。

示例: 'Test'

对话框设置,指定为结构体。此结构体指定哪个按钮是默认按钮选择以及是否使用 TeX 解释问题文本。

opts 结构体必须包含下表列出的两个字段。此结构体也可以额外包含其他字段,但 questdlg 不使用它们。

字段

Default

默认按钮选择,指定为字符向量或字符串标量。默认选择必须与对话框按钮标签之一相同。

默认按钮是用户按下键盘上的 Return 键而不是点击对话框按钮时 MATLAB 返回的按钮值。

如果 Default 字段值与任一按钮标签都不匹配,则用户按下键盘上的 Enter 键时,该对话框不响应。

Interpreter

'none'(默认值)或 'tex'。如果设置为 'tex',则使用 TeX 呈现提示。按钮标签和对话框标题不受影响。

使用 TeX 标记可添加上标和下标、修改字体类型和颜色,以及在 question 文本中包含特殊字符。

修饰符会一直作用到文本结尾,但上标和下标除外,因为它们仅修饰下一个字符或花括号中的字符。当您将解释器设置为 '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 三元组。'\color[rgb]{0,0.5,0.5} text'

下表列出了 '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 之前推出

另请参阅

|