主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

questdlg

R2026a

创建问题对话框

描述

注意

推荐使用 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) 通过用 btn1 和 btn2 的值作为按钮标签来自定义两个标准按钮。第三个标准按钮则被删除。defbtn 值必须与 btn1 或 btn2 的值匹配。

如果用户按下键盘上的 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) 自定义两个标准按钮,其标签分别匹配 btn1 和 btn2 的值。第三个标准按钮则被删除。

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 替换为以下颜色之一:red、green、yellow、magenta、blue、black、white、gray、darkGreen、orange 或 lightBlue。"\color{magenta} text"
\color[rgb]{specifier}自定义字体颜色 - 将 specifier 替换为三元素 RGB 三元组。"\color[rgb]{0,0.5,0.5} text"

下表列出了 "tex" 解释器所支持的特殊字符序列。某些符号看起来与它们在 MATLAB 中的样子略有不同。

字符序列符号字符序列符号字符序列符号

\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'

详细信息

全部折叠

版本历史记录

在 R2006a 之前推出

另请参阅

|