52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 一个实例搞定appdesigner [打印本页]

作者: matlab的旋律    时间: 2018-3-29 18:07
标题: 一个实例搞定appdesigner
App Designer简介及安装
      Matworks自Matlab R2016a以后推出了GUIDE的替代产品:App Designer,这是Matlab顺应Web的潮流,在图形界面系统开始转向面向对象系统之后(Matlab R2014a)的又一个重要阶段产品,它便于用户设计更加美观的图形界面。使用App Designer需要安装Matlab R2016a以后的版本,或者在安装了Matlab R2014b到Matlab R2015b之间的版本上从Matworks官网上下载AppDesigner安装包进行安装。
打开App Designer工作平台
      新建一个AppDesigner的方法同新建GUIDE的方法类似,可以在命令窗口输入appdesigner,也可以在工具栏依次操作Home->New->App->App Designer;打开已有文件(其中文件后缀为.mlapp)的方法包括在当前路径下直接输入appdesigner AppName.mlapp,或者在打开的appdesigner上点击open->选择AppName.mlapp。
App Designer应用实例
      对比前面写到用GUIDE设计的“UDP通信及信号的时频分析”实例,下面用App Designer设计同样的功能界面。与GUIDE工程不同,App Designer工程可以只包含一个后缀为.mlapp的文件,其中包含GUI界面和code。对应GUI的画布界面图1所示:

[attach]140[/attach]
                         图1
     对比GUIDE,App Designer增加了和工业应用相关的控件:比如仪表盘、旋钮、开关、指示灯,另外相关控件属性的选择和修改更加友好。
在对应类定义代码的CodeView如图2所示:

[attach]141[/attach]
                            图2
GUIDEhandles对应结构体成员变量可容易定义不同,App Designer中的成员变量需要先行声明,如程序中的类成员变量getDataTimer
   properties (Access = private)
       getDataTimer timer % Description
   end
这里Access可以选择privatepublic,其性能跟c++中的共有和私有成员变量相似,可以根据具体需要进行设置。另外这里的声明需要指定成员变量的属性,这里getDataTimer的属性为timer,那么在赋值给getDataTimer赋值的时候,也必须指定其值的类型是timer,否则就会报错。
       App Designer中的成员函数定义跟成员变量的定义相同,其默认形参包括app和event,因此本文中用定时器控制函数调用时包含3个参数,如果成员函数形参小于3则会报错。
通常在显示界面时需要初始化一些值,比如前面GUIDE设计的GUI中将左上角的Matlab logo替换成自定义图片,在App Designer中可以在Callback那里添加startupFcn类型的函数,并在对应的函数里进行操作。目前StartupFcn函数中的注释部分不可用,原因是App Designer和GUIDE对javax Swing的支持不一致,暂时还没有弄明白(后续再研究)。
析构函数的作用是关闭GUI的Figure时调用,该函数是点击GUI的关闭窗口按钮时的回调函数,于是GUI的窗口被关闭将触发函数。在App Designer中可以在Callback那里添加CloseRequestFcn类型的函数,本文中定义的析构函数如下:
functionQuitButtonPushed(app, event)
       echoudp('off');%close udp
       Timer = timerfind;% look for timer
       if ~isempty(Timer)%if find timer,stop and delete it
          stop(Timer);
           delete(Timer);
       end
       delete(app)
end

图3和图4分别对应GUIDE和App Designer生成的界面:
[attach]142[/attach]
                              图3
[attach]143[/attach][attach]26[/attach]
                              图4
其中对应的App Designer工程可下载附件。






欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2