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');

当用户选择某个选项时,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);

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

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

在 MATLAB 编辑器中,创建一个包含如下代码的新函数 mycallback.m。此回调函数在名为 eventstruct 中显示 SelectedOption 字段。MATLAB 自动将此 struct 作为第二个参数传递给回调函数。

function mycallback(src,event)
   display(event.SelectedOption);
end

在 MATLAB 命令行窗口中,执行以下代码以创建确认对话框,将 mycallback 指定为 CloseFcn 的值。

fig = uifigure;
uiconfirm(fig,'Close document?','Confirm Close',...
            'CloseFcn',@mycallback);

当用户选择某个选项时,SelectedOption 的值将显示在命令行窗口中。

要在 App 设计工具中创建具有 CloseFcn 回调的确认对话框,请在 App 设计工具中以私有函数的形式编写该回调。

首先选择代码视图。然后选择函数 > 私有函数,以创建私有函数。

接下来,编写私有函数,代码如下所示:

function mycallback(app,src,event)
   display(event.SelectedOption);
end

将该命令添加到要显示对话框的回调函数中。在本例中,目标图窗为 app.UIFigure,这是图窗在 App 设计工具中的默认名称。

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

保存并运行您的 App。当用户触发创建对话框的回调时,对话框将显示在 App 中。

输入参数

全部折叠

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

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

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

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

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

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

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

预定义图标

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

图标
'question'(默认值)

'info'

'success'

'warning'

'error'

''不显示任何图标。

自定义图标

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

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

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

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

当您指定字符向量或字符串标量时,它必须与 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所选选项的按钮标签,以字符向量形式返回。

在 R2017b 中推出