Matlab AppDesigner是R2016a之后推出的新界面设计工具,较GUIDE的GUI 界面更美化,组建更丰富,具有自动化编程等特性。
但是表面上看AppDesigner并没有暴露很多组件诸如Javaframe
GUIDE的figure(gcf)是基于Java的Jframe组件,而Appdesigner的app.UIFigure是基于html的webview,本质上运行了一个CEF(Chromium嵌入式框架 Chromium Embedded Framework version 3.2272 on Chromium 41 in R2016a)。使用的JS DOJO 套件,可以想象Matlab与js/webapp接轨的趋势了。。
因此,如果像GUIDE一样或者其他教学一样视图获取
get(app.UIFigure,'javaframe')
会得到一个空数组,而且是特意留下的,Matlab一直有抛弃javaframe的想法,还发布过调查,现在看来还是不敢完全抛弃。
不说更多,下面就揭示一些其他组件结构吧。
>> hFig = uifigure('Name','Yair', ...); % 如果是app designer初始化函数中,就是hFig = app.UIFigure,要先输入drawnow;!!!
>> warning off MATLAB:structOnObject % 关闭struct调用警告
>> figProps = struct(hFig); % 利用struct暴露其属性
>> controller = figProps.Controller; % Controller 是 UIFigure 隐藏的属