uiconfirm
创建确认对话框
说明
uiconfirm(
显示确认对话框,其中有一个或多个可自定义对话框外观和行为的 fig
,message
,title
,Name,Value
)Name,Value
参量。例如,您可以在对话框中指定一组自定义选项,而不是默认的 OK 和 Cancel。
以字符向量形式返回用户所选内容。可以结合上述任一语法使用 selection
= uiconfirm(___)selection
输出参量。使用此语法时,您无法在对话框打开的状态下访问 MATLAB 命令提示符。
示例
指定不同的图标
创建一个对话框,显示警告图标,而不是默认的问号图标。
fig = uifigure; selection = uiconfirm(fig, ... "Close document?","Confirm Close", ... "Icon","warning");
当用户选择某个选项时,uiconfirm
将以字符向量形式返回该选项。
指定自定义选项
创建一个确认对话框,其中包含三个选项:Overwrite、Save as new 和 Cancel。指定 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);
当用户选择某个选项时,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
点击确定以绘制方程。
定义 CloseFcn
回调
CloseFcn
名称-值参量可用于在对话框关闭时执行特定的任务。
在 MATLAB 编辑器中,创建一个包含以下代码的脚本。代码会创建一个图窗,并定义两个名为 figcallback
和 dlgcallback
的回调函数。
当用户尝试关闭图窗窗口时,会执行
figcallback
函数。该函数在图窗窗口中创建一个确认对话框,并将dlgcallback
函数指定为对话框CloseFcn
回调。对话框关闭时,将执行
dlgcallback
函数。该函数访问名为event
的struct
中的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
运行脚本,然后尝试关闭图窗窗口。这将创建确认对话框。
有关指定回调函数的详细信息,请参阅Create Callbacks for Apps Created Programmatically。
在 App 设计工具中创建对话框
在 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 窗口以创建确认对话框。
有关以编程方式创建组件和指定回调函数的详细信息,请参阅以编程方式向 App 设计工具添加 UI 组件。
输入参数
fig
— 目标图窗
Figure
对象
目标图窗,指定为 Figure
对象。图窗必须使用 uifigure
函数创建。
message
— 要显示的消息
字符向量 | 字符向量元胞数组 | 字符串数组
要显示的消息,指定为字符向量、字符向量元胞数组或字符串数组。当消息有多行文本时,指定元胞数组或字符串数组。数组中的每个元素对应于一行文本。
title
— 对话框标题
字符向量 | 字符串标量
对话框标题,指定为字符向量或字符串标量。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: selection = uiconfirm(fig,message,title,'Options',{'Save','Delete','Quit'})
为对话框指定三个自定义选项。
Options
— 自定义选项
{'OK','Cancel'}
(默认) | 字符向量元胞数组 | 字符串数组
自定义选项,指定为字符向量元胞数组或字符串数组。
Icon
— 图标
'question'
(默认) | 预定义图标 | 自定义图标
图标,指定为预定义图标或自定义图标。
预定义图标
下表列出了预定义图标的值。例如,要显示对勾图标,请指定名称-值对组 'Icon','success'
。
值 | 图标 |
---|---|
'question' (默认值) |
|
'info' |
|
'success' |
|
'warning' |
|
'error' |
|
'' | 不显示任何图标。 |
自定义图标
可将自定义图标指定为下列值之一:
字符向量,指定 MATLAB 路径中的 SVG、JPEG、GIF 或 PNG 图像的文件名。也可以指定图像文件的完整路径。
真彩色图像数组。有关详细信息,请参阅 图像类型。
DefaultOption
— 默认选项。
1
(默认) | 字符向量 | 字符串标量 | 整数
默认选项,指定为字符向量、字符串标量或整数。默认选项对应于对话框中默认情况下获得焦点的按钮。
当您指定字符向量或字符串标量时,它必须与 Options
数组中的某个元素匹配。但是,如果您调用没有 Options
参量的 uiconfirm
,则 DefaultOption
必须是 'OK'
或 'Cancel'
。
如果您指定整数,则它必须在 [1, n] 范围内,其中 n 是 Options
数组的长度。如果您调用没有 Options
参量的 uiconfirm
,则 DefaultOption
必须是 1
或 2
。
CancelOption
— 取消选项
2
(默认) | 字符向量 | 字符串标量 | 整数
取消选项,指定为字符向量、字符串标量或整数。取消选项指定与对话框中的取消操作对应的选项。
当您指定字符向量或字符串标量时,它必须与 Options
数组中的某个元素匹配。但是,如果您调用没有 Options
参量的 uiconfirm
,则 CancelOption
必须是 'OK'
或 'Cancel'
。
如果您指定整数,则它必须在 [1, n] 范围内,其中 n 是 Options
数组的长度。如果您调用没有 Options
参量的 uiconfirm
,则 CancelOption
必须是 1
或 2
。
CloseFcn
— 关闭操作回调函数
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
关闭操作回调函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
此回调可用于在对话框关闭时执行特定的任务。
如果将 CloseFcn
指定为函数句柄(或包含函数句柄的元胞数组),则 MATLAB 会将包含事件数据的 struct
作为输入参量传递给回调函数。此 struct
包含下表中介绍的字段。
结构体字段 | 值 |
---|---|
Source | 与对话框关联的 Figure 对象。 |
EventName | 'ConfirmDialogClosed' |
DialogTitle | 对话框的标题。 |
SelectedOptionIndex | 所选选项的索引。如果有 n 个选项,则索引可以是从 1 到 n 的任何整数。 |
SelectedOption | 所选选项的按钮标签,以字符向量形式返回。 |
有关指定回调函数的详细信息,请参阅Create Callbacks for Apps Created Programmatically。
Interpreter
— 对话框文本解释器
'none'
(默认) | 'tex'
| 'latex'
| 'html'
对话框文本解释器,指定为:
'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{ | 字体名称 - 将 替换为字体系列的名称。您可以将此说明符与其他修饰符结合使用。 | '\fontname{Courier} text' |
\fontsize{ | 字体大小 - 将 替换为以磅为单位的数值标量值。 | '\fontsize{15} text' |
\color{ | 字体颜色 - 将 替换为以下颜色之一:red 、green 、yellow 、magenta 、blue 、black 、white 、gray 、darkGreen 、orange 或 lightBlue 。 | '\color{magenta} text' |
\color[rgb]{specifier} | 自定义字体颜色 - 将 替换为三元素 RGB 三元组。 | '\color[rgb]{0,0.5,0.5} text' |
下表列出了 'tex'
解释器所支持的特殊字符。
字符序列 | 符号 | 字符序列 | 符号 | 字符序列 | 符号 |
---|---|---|---|---|---|
| α |
| υ |
| ~ |
| ∠ |
| ϕ |
| ≤ |
|
|
| χ |
| ∞ |
| β |
| ψ |
| ♣ |
| γ |
| ω |
| ♦ |
| δ |
| Γ |
| ♥ |
| ϵ |
| Δ |
| ♠ |
| ζ |
| Θ |
| ↔ |
| η |
| Λ |
| ← |
| θ |
| Ξ |
| ⇐ |
| ϑ |
| Π |
| ↑ |
| ι |
| Σ |
| → |
| κ |
| ϒ |
| ⇒ |
| λ |
| Φ |
| ↓ |
| µ |
| Ψ |
| º |
| ν |
| Ω |
| ± |
| ξ |
| ∀ |
| ≥ |
| π |
| ∃ |
| ∝ |
| ρ |
| ∍ |
| ∂ |
| σ |
| ≅ |
| • |
| ς |
| ≈ |
| ÷ |
| τ |
| ℜ |
| ≠ |
| ≡ |
| ⊕ |
| ℵ |
| ℑ |
| ∪ |
| ℘ |
| ⊗ |
| ⊆ |
| ∅ |
| ∩ |
| ∈ |
| ⊇ |
| ⊃ |
| ⌈ |
| ⊂ |
| ∫ |
| · |
| ο |
| ⌋ |
| ¬ |
| ∇ |
| ⌊ |
| x |
| ... |
| ⊥ |
| √ |
| ´ |
| ∧ |
| ϖ |
| ∅ |
| ⌉ |
| 〉 |
| | |
| ∨ |
| 〈 |
| © |
LaTeX 标记
使用 LaTeX 标记来格式化和显示数学表达式、方程和特殊字符。使用美元符号将标记的文本括起来。例如,对于行内模式,使用 '$\int_1^{20} x^2 dx$'
,对于显示模式,使用 '$$\int_1^{20} x^2 dx$$'
。
显示的文本将使用默认的 LaTeX 字体样式。您可以使用 LaTeX 标记来更改字体样式。
MATLAB 支持大多数标准 LaTeX 数学模式命令。有关详细信息,请参阅支持的 LaTeX 命令。
HTML 标记
使用 HTML 标记显示链接和自定义字体样式。
解释器支持部分 HTML 标记。一般情况下,解释器支持与文本相关的标记和样式。不支持的标记和样式将被忽略。
下表列出了支持的元素和元素属性。
HTML 元素 | 属性 | 描述 |
---|---|---|
a | style , target , href , title | 超链接 |
abbr | style , title | 缩写 |
address | style | 联系信息 |
article | style | 自包含的独立内容 |
aside | style | 与主要内容间接相关的内容 |
b | style | 粗体文本 |
bdi | style , dir | 格式与周围文本方向不同的内容 |
bdo | style , dir | 格式与周围文本方向不同的内容 |
big | style | 比周围文本大一个字体大小级别的文本(在 HTML5 中已弃用) |
blockquote | style , cite | 扩展引用 |
br | 不适用 | 换行符 |
caption | style | 表标题 |
center | style | 水平居中的内容 |
cite | style | 创造性工作的标题 |
code | style | 代码片段 |
col | style , align , valign , span , width | 表中的列 |
colgroup | style , align , valign , span , width | 表中的一组列 |
dd | style | 描述列表中的项或值 |
del | style , datetime | 从文档中删除的文本 |
details | style , open | 文本仅在切换到 'open' 状态时才可见的交互式小组件 |
dl | style | 描述列表 |
dt | style | 描述列表中的项或值 |
em | style | 强调的文本(通常以粗体显示) |
font | style , color , size , face | 具有指定字体属性的文本(在 HTML5 中弃用) |
footer | style | 页脚 |
h1 . h2 , h3 , h4 , h5 , h6 | style | 节标题 - <h1> 是最高级别的标题,<h6> 是最低级别的标题 |
header | style | 介绍性内容 |
hr | style | 主题换行 |
i | style | 偏离周围内容的文本 - 默认以粗体方式呈现 |
ins | style , datetime | 插入文档中的文本 |
li | style | 列表中的项 |
mark | style | 标记或突出显示的文本 |
ol | style | 有序列表 |
p | style | 段落 |
pre | style | 预设格式的文本 |
s | style | 带删除线的文本 |
strike | style | 带删除线的文本(在 HTML5 中弃用) |
section | style | 独立节 |
small | style | 比周围文本小一个字体大小级别的文本(在 HTML5 中弃用) |
sub | style | 下标 |
sup | style | 上标 |
strong | style | 非常重要的文本 |
table | style , width , border , align , valign | 表 |
tbody | style , align , valign | 表正文 |
td | style , width , rowspan , colspan , align , valign | 表数据单元格 |
tfoot | style , align , valign | 汇总表列的表行组 |
th | style , width , rowspan , colspan , align , valign | 表数据单元格,指定为一组单元格的标题 |
thead | style , align , valign | 指定列标题的表行组 |
tr | style , rowspan , align , valign | 表单元格行 |
tt | style | 等宽文本(在 HTML5 中弃用) |
u | style | 具有模糊注解的文本 - 默认带下划线显示 |
ul | style | 无序列表 |
有关这些元素的详细信息,请参阅 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 中推出R2021b: 设置文本和显示方程的样式
使用 Interpreter
名称-值参量在对话框文本中启用标记。将解释器指定为 'html'
、'latex'
、'tex'
或 'none'
。
另请参阅
uialert
| questdlg
| uifigure
| uiprogressdlg
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)