Main Content

uiconfirm

创建确认对话框

说明

uiconfirm(fig,message,title) 在指定的目标图窗中显示一个 App 内模态确认对话框。目标图窗必须使用 uifigure 函数创建。此语法显示供用户选择的两个选项 OKCancel。当对话框打开时,您无法访问对话框后面的图窗,但可以访问 MATLAB® 命令提示符。

示例

uiconfirm(fig,message,title,Name,Value) 显示确认对话框,其中有一个或多个可自定义对话框外观和行为的 Name,Value 参量。例如,您可以在对话框中指定一组自定义选项,而不是默认的 OKCancel

示例

selection = uiconfirm(___) 以字符向量形式返回用户所选内容。可以结合上述任一语法使用 selection 输出参量。使用此语法时,您无法在对话框打开的状态下访问 MATLAB 命令提示符。

示例

全部折叠

创建一个对话框,显示警告图标,而不是默认的问号图标。

fig = uifigure;
selection = uiconfirm(fig, ...
    "Close document?","Confirm Close", ...
    "Icon","warning");

Figure window with a confirmation dialog box. The dialog has a yellow warning icon.

当用户选择某个选项时,uiconfirm 将以字符向量形式返回该选项。

创建一个确认对话框,其中包含三个选项:OverwriteSave as newCancel。指定 Save as new 作为默认选项,并指定 Cancel 作为与取消行为对应的选项。

fig = uifigure;
msg = "Saving these changes will overwrite previous changes.";
title = "Confirm Save";
selection = uiconfirm(fig,msg,title, ...
    "Options",["Overwrite","Save as new","Cancel"], ...
    "DefaultOption",2,"CancelOption",3);

Figure window with a confirmation dialog box asking the user to confirm their save. There are three options. The second option, "Save as new", is highlighted in blue.

当用户选择某个选项时,uiconfirm 将以字符向量形式返回他们的选择。

创建一个图窗,其中包含一个 PolarAxes 对象和一个显示使用 LaTeX 格式化的方程的确认对话框。如果用户点击确定,则包括处理对话框选择和绘制方程的代码。

fig = uifigure;
ax = polaraxes(fig);
msg = "Do you want to plot $$r = \exp \left(\frac{\theta}{10}\right)?$$";
selection = uiconfirm(fig,msg,"Plot equation","Interpreter","latex");
switch selection
    case 'OK'
        theta = -100:0.1:0;
        r = exp(theta/10);
        polarplot(ax,theta,r);
    case 'Cancel'
        return
end

Figure window with a polar axes and a dialog box asking if you want to plot a polar equation.

点击确定以绘制方程。

Figure window with a spiral curve plotted on a polar axes.

CloseFcn 名称-值参量可用于在对话框关闭时执行特定的任务。

在 MATLAB 编辑器中,创建一个包含以下代码的脚本。代码会创建一个图窗,并定义两个名为 figcallbackdlgcallback 的回调函数。

  • 当用户尝试关闭图窗窗口时,会执行 figcallback 函数。该函数在图窗窗口中创建一个确认对话框,并将 dlgcallback 函数指定为对话框 CloseFcn 回调。

  • 对话框关闭时,将执行 dlgcallback 函数。该函数访问名为 eventstruct 中的 SelectedOption 字段,MATLAB 将该字段作为第二个参量传递给回调函数。如果用户选择确定,该函数将关闭图窗窗口。

fig = uifigure("CloseRequestFcn",@figcallback);

function figcallback(src,event)
    uiconfirm(src,"Close app?","Confirm Close", ...
        "CloseFcn",@dlgcallback);
end

function dlgcallback(src,event)
    if event.SelectedOption == "OK"
        delete(event.Source)
    end
end

运行脚本,然后尝试关闭图窗窗口。这将创建确认对话框。

Figure window with a confirmation dialog box that says "Close app?"

有关指定回调函数的详细信息,请参阅Create Callbacks for Apps Created Programmatically

在 App 设计工具中创建一个确认对话框,要求用户确认关闭 App 的决定。

为该确认对话框编写一个 CloseFcn 回调,如果用户选择确定,该对话框将关闭 App 图窗窗口。首先,在 App 设计工具的代码视图中,通过选择函数 > 私有函数来创建一个私有函数。然后,编写私有函数,代码如下所示:

function mycallback(app,src,event)
    if event.SelectedOption == "OK"
        delete(app.UIFigure);
    end
end

最后,要在用户尝试关闭 App 时显示对话框,请为图窗窗口创建一个 CloseRequestFcn 回调。点击回调并选择 app.UIFigure 作为组件,选择 CloseRequestFcn 作为回调,然后点击添加回调。用以下代码替换 App 设计工具创建的回调函数的主体:

uiconfirm(app.UIFigure,'Close document?','Confirm Close', ...
            'CloseFcn',@app.mycallback);

保存并运行您的 App,然后尝试关闭 App 窗口以创建确认对话框。

Figure window with a confirmation dialog box that says "Close app?"

有关以编程方式创建组件和指定回调函数的详细信息,请参阅以编程方式向 App 设计工具添加 UI 组件

输入参数

全部折叠

目标图窗,指定为 Figure 对象。图窗必须使用 uifigure 函数创建。

要显示的消息,指定为字符向量、字符向量元胞数组或字符串数组。当消息有多行文本时,指定元胞数组或字符串数组。数组中的每个元素对应于一行文本。

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

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: selection = uiconfirm(fig,message,title,'Options',{'Save','Delete','Quit'}) 为对话框指定三个自定义选项。

自定义选项,指定为字符向量元胞数组或字符串数组。

图标,指定为预定义图标或自定义图标。

预定义图标

下表列出了预定义图标的值。例如,要显示对勾图标,请指定名称-值对组 'Icon','success'

图标
'question'(默认值)

Blue circle with a question mark symbol.

'info'

Blue square with the letter "i".

'success'

Green circle with a check mark symbol.

'warning'

Yellow triangle with an exclamation point symbol.

'error'

Red octagon with an exclamation point symbol.

''不显示任何图标。

自定义图标

可将自定义图标指定为下列值之一:

  • 字符向量,指定 MATLAB 路径中的 SVG、JPEG、GIF 或 PNG 图像的文件名。也可以指定图像文件的完整路径。

  • 真彩色图像数组。有关详细信息,请参阅 在 MATLAB 中使用图像类型

默认选项,指定为字符向量、字符串标量或整数。默认选项对应于对话框中默认情况下获得焦点的按钮。

当您指定字符向量或字符串标量时,它必须与 Options 数组中的某个元素匹配。但是,如果您调用没有 Options 参量的 uiconfirm,则 DefaultOption 必须是 'OK''Cancel'

如果您指定整数,则它必须在 [1, n] 范围内,其中 n 是 Options 数组的长度。如果您调用没有 Options 参量的 uiconfirm,则 DefaultOption 必须是 12

取消选项,指定为字符向量、字符串标量或整数。取消选项指定与对话框中的取消操作对应的选项。

当您指定字符向量或字符串标量时,它必须与 Options 数组中的某个元素匹配。但是,如果您调用没有 Options 参量的 uiconfirm,则 CancelOption 必须是 'OK''Cancel'

如果您指定整数,则它必须在 [1, n] 范围内,其中 n 是 Options 数组的长度。如果您调用没有 Options 参量的 uiconfirm,则 CancelOption 必须是 12

关闭操作回调函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

此回调可用于在对话框关闭时执行特定的任务。

如果将 CloseFcn 指定为函数句柄(或包含函数句柄的元胞数组),则 MATLAB 会将包含事件数据的 struct 作为输入参量传递给回调函数。此 struct 包含下表中介绍的字段。

结构体字段
Source与对话框关联的 Figure 对象。
EventName'ConfirmDialogClosed'
DialogTitle对话框的标题。
SelectedOptionIndex所选选项的索引。如果有 n 个选项,则索引可以是从 1n 的任何整数。
SelectedOption所选选项的按钮标签,以字符向量形式返回。

有关指定回调函数的详细信息,请参阅Create Callbacks for Apps Created Programmatically

对话框文本解释器,指定为:

  • 'none' - 显示字面字符。

  • 'tex' - 使用 TeX 标记的子集解释文本。

  • 'latex' - 使用 LaTeX 标记子集解释文本。

  • 'html' - 使用 HTML 标记子集解释文本。

TeX 标记

使用 TeX 标记添加上标和下标,并在文本中包含特殊字符。

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

©

LaTeX 标记

使用 LaTeX 标记来格式化和显示数学表达式、方程和特殊字符。使用美元符号将标记的文本括起来。例如,对于行内模式,使用 '$\int_1^{20} x^2 dx$',对于显示模式,使用 '$$\int_1^{20} x^2 dx$$'

显示的文本将使用默认的 LaTeX 字体样式。您可以使用 LaTeX 标记来更改字体样式。

MATLAB 支持大多数标准 LaTeX 数学模式命令。有关详细信息,请参阅支持的 LaTeX 命令

HTML 标记

使用 HTML 标记显示链接和自定义字体样式。

解释器支持部分 HTML 标记。一般情况下,解释器支持与文本相关的标记和样式。不支持的标记和样式将被忽略。

下表列出了支持的元素和元素属性。

HTML 元素属性描述
astyle, target, href, title超链接
abbrstyle, title缩写
addressstyle联系信息
articlestyle自包含的独立内容
asidestyle与主要内容间接相关的内容
bstyle粗体文本
bdistyle, dir格式与周围文本方向不同的内容
bdostyle, dir格式与周围文本方向不同的内容
bigstyle比周围文本大一个字体大小级别的文本(在 HTML5 中已弃用)
blockquotestyle, cite扩展引用
br不适用换行符
captionstyle表标题
centerstyle水平居中的内容
citestyle创造性工作的标题
codestyle代码片段
colstyle, align, valign, span, width表中的列
colgroupstyle, align, valign, span, width表中的一组列
ddstyle描述列表中的项或值
delstyle, datetime从文档中删除的文本
detailsstyle, open文本仅在切换到 'open' 状态时才可见的交互式小组件
dlstyle描述列表
dtstyle描述列表中的项或值
emstyle强调的文本(通常以粗体显示)
fontstyle, color, size, face具有指定字体属性的文本(在 HTML5 中弃用)
footerstyle页脚
h1. h2, h3, h4, h5, h6style节标题 - <h1> 是最高级别的标题,<h6> 是最低级别的标题
headerstyle介绍性内容
hrstyle主题换行
istyle偏离周围内容的文本 - 默认以粗体方式呈现
insstyle, datetime插入文档中的文本
listyle列表中的项
markstyle标记或突出显示的文本
olstyle有序列表
pstyle段落
prestyle预设格式的文本
sstyle带删除线的文本
strikestyle带删除线的文本(在 HTML5 中弃用)
sectionstyle独立节
smallstyle比周围文本小一个字体大小级别的文本(在 HTML5 中弃用)
substyle下标
supstyle上标
strongstyle非常重要的文本
tablestyle, width, border, align, valign
tbodystyle, align, valign表正文
tdstyle, width, rowspan, colspan, align, valign表数据单元格
tfootstyle, align, valign汇总表列的表行组
thstyle, width, rowspan, colspan, align, valign表数据单元格,指定为一组单元格的标题
theadstyle, align, valign指定列标题的表行组
trstyle, rowspan, align, valign表单元格行
ttstyle等宽文本(在 HTML5 中弃用)
ustyle具有模糊注解的文本 - 默认带下划线显示
ulstyle无序列表

有关这些元素的详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/HTML/Element

要使用 HTML 标记创建运行 MATLAB 代码的超链接,请参阅创建运行函数的超链接

您可以使用 HTML 样式属性来格式化 HTML 内容。样式属性是一串 CSS 属性及其值。

支持下列 CSS 属性:

  • background-color

  • border-bottom

  • border-bottom-color

  • border-bottom-left-radius

  • border-bottom-right-radius

  • border-bottom-style

  • border-bottom-width

  • border-left

  • border-left-color

  • border-left-style

  • border-left-width

  • border-radius

  • border-right

  • border-right-color

  • border-right-style

  • border-right-width

  • border-spacing

  • border-style

  • border-top

  • border-top-color

  • border-top-left-radius

  • border-top-right-radius

  • border-top-style

  • border-top-width

  • border-width

  • color

  • direction

  • font-family

  • font-size

  • font-style

  • font-weight

  • height

  • hidden

  • line-height

  • margin

  • margin-bottom

  • margin-left

  • margin-right

  • margin-top

  • max-height

  • max-width

  • min-height

  • min-width

  • overflow

  • overflow-wrap

  • overflow-x

  • overflow-y

  • padding

  • padding-bottom

  • padding-left

  • padding-right

  • padding-top

  • text-align

  • text-anchor

  • text-decoration

  • text-indent

  • text-overflow

  • text-shadow

  • text-transform

  • title

  • translate

  • white-space

  • width

有关这些属性的详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

版本历史记录

在 R2017b 中推出

全部展开