zoukankan      html  css  js  c++  java
  • MATLAB app designer 菜鸟进阶学习(三)

    3.创建确认对话框

      在app设计中,确认对话框是不可缺少的存在,如关闭app前的提醒、修改参数之后的提醒,可以规避在操作过程中的失误,从而避免数据等的丢失

    3.1 创建对话框语法

    uiconfirm(f,message,title)
    uiconfirm(f,message,title,Name,Value)
    selection = uiconfirm(___)
    

      其中,uiconfirm(f,message,title) 在目标图窗 f 中显示一个 App 内模态确认对话框。此语法显示供用户选择的两个选项 OK 和 Cancel。显示该对话框时,对话框后面的图窗不可访问,但可以访问 MATLAB® 命令提示。

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

      selection = uiconfirm(___) 以字符向量形式返回用户的选择。可以结合上述任一语法使用 selection 输出参数。如果使用此语法,显示对话框时 MATLAB 命令提示将不可访问。

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

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

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

    3.2 详述

      根据不同的应用场景,对话框的个性化设计分别为下述几种

    3.2.1 指定不同的图标 

    selection = uiconfirm(app.UIFigure,'Close document?','Confirm Close',...
                            'Icon','warning');
    

      

      当你点击ok后,uiconfirm 将以字符向量形式返回该选项,即返回“ok”。

      其中,系统预定义图标的类型包括:

     同时可以自定义图标,可将自定义图标指定为下列值之一:

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

    • 真彩色图像数组

    3.2.2 指定自定义选项

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

    msg = 'Saving these changes will overwrite previous changes.';
    title = 'Confirm Save';
    selection = uiconfirm(f,msg,title,...
               'Options',{'Overwrite','Save as new','Cancel'},...
               'DefaultOption',2,'CancelOption',3);
    

     

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

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

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

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

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

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

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

    3.2.3 定义 CloseFcn 回调

      CloseFcn 名称-值对组参数可用于在对话框关闭时执行特定的任务。在 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 中。

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

    • 函数句柄。

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

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

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

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

     

    3.3 示例演示

    function plot1ButtonPushed(app, event)
            selection=uiconfirm(app.UIFigure,'请查看数据的单位是否正确','确认对话框');  
            if selection=="确定"
              n=100;
              s=0:app.L1/n:app.L1;
              j=n/2;
              q=0:app.dQ:app.Q;
              m=length(q);
              cla(app.qlUIAxes)
              hold(app.qlUIAxes,'on'); 
              z=0;
              z0=1/m;
              for i=q 
                 d=uiprogressdlg(app.UIFigure,'Title','Please Wait',...
                  'Message','数据处理中','value',z);
                 xishu(app,i,app.L1,s,j);
                 z=z+z0;
              end
              close(d);
            end
    

      

  • 相关阅读:
    移动web开发资源大整合
    移动WEB模拟原声APP滑动删除
    jQuery的live绑定事件在mobile safari(iphone / ipad / ipod)上失效的解决方案
    精仿公众号菜单效果
    javascript markdown 解析器
    第四天
    第三天
    第二天
    第一天
    day5
  • 原文地址:https://www.cnblogs.com/Sonny-xby/p/12618977.html
Copyright © 2011-2022 走看看