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所示:
图1
对比GUIDE,App Designer增加了和工业应用相关的控件:比如仪表盘、旋钮、开关、指示灯,另外相关控件属性的选择和修改更加友好。 在对应类定义代码的CodeView如图2所示:
图2
与GUIDE中handles对应结构体成员变量可容易定义不同,App Designer中的成员变量需要先行声明,如程序中的类成员变量getDataTimer: properties (Access = private) getDataTimer timer % Description end 这里Access可以选择private或public,其性能跟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生成的界面:
图3
图4
其中对应的App Designer工程可下载附件。
|