主要内容

指导迁移策略

在R2019b MathWorks®宣布指南,最初的拖放建筑应用MATLAB环境®在将来的版本中,将被删除。指南是移除后,现有的引导程序(gui)将继续在MATLAB运行,和应用程序文件仍然是可编辑的,如果你需要更改应用程序的行为。

继续编辑布局现有指南的应用,帮助维持其兼容未来MATLAB版本中,您必须使用一个建议表中列出的迁移策略。

应用开发需求 迁移策略 如何迁移
持续的发展 将应用程序迁移到应用程序设计师。 打开应用在指导和选择文件>迁移应用程序设计师。在指导转变选项对话框中,点击迁移
偶尔的编辑 应用程序导出到一个MATLAB文件来管理你的应用程序布局和代码使用MATLAB函数。 打开应用在指导和选择文件>出口到MATLAB-file。在指导转变选项对话框中,点击出口

指导应用程序迁移到应用程序设计师

迁移指南应用程序设计器允许你继续开发你的应用程序交互的布局。它还允许您利用等功能的一个增强的UI组件设置和auto-reflow选项,让你的应用程序对屏幕大小的变化。它使您能够创建和分享你的应用程序作为一个web应用程序(需要MATLAB编译器™)。

使用这个选项为指导应用程序需要大量或持续的功能开发。

应用程序设计师迁移工具指南MATLAB第一次发布R2018a缓解转换过程。可以通过在MATLAB桌面插件浏览器或文件交换MATLAB中央™

从R2020a,迁移工具已经显著改善,大大减少所需的时间和手工代码更新的数量,让你的应用程序运行在应用程序设计师。这些增强的详细信息,请参阅回调代码

有几种方法可以迁移您的应用程序,这取决于环境开始。

  • 在指南中,打开你的应用程序并选择文件>迁移应用程序设计师

    • 如果你不已经有了指南应用设计师迁移工具安装,点击安装支持包万博1manbetx。这将打开附加Explorer,您可以安装迁移工具。一旦你安装了工具,重新引导转变选项对话框。

    • 一旦你安装指南应用设计师迁移工具,选择正确的图文件然后点击迁移。应用迁移和自动打开应用程序设计师。

  • 在应用程序设计师,打开任何应用程序和去设计师选项卡。在文件部分中,点击开放>开放应用指南设计师迁移工具

  • 在MATLAB命令窗口,调用appmigration.migrateGUIDEApp函数。您可以使用此函数迁移多个在批处理应用提供指导。

迁移工具的特性

迁移工具可以帮助你把你的应用程序通过阅读指南图文件,并自动生成应用程序设计师等价组件和布局一个MLAPP文件。导回调代码和其他用户定义函数复制到MLAPP文件。这种半自动化代码转换也创建了一个迁移报告表明行动所需的任何手工代码更新。一些工具的功能在这个表中描述。

迁移工具的特性 描述
文件转换 导图文件中读取和相关代码,然后生成一个应用程序设计师MLAPP文件。应用程序设计师文件名的guideFileName_App.mlapp
组件和应用程序的布局

转换组件和属性配置应用程序设计师等价物,并保存应用程序的布局。

引导程序和应用程序设计人员应用计算质量。每个应用程序的布局和功能是一样的。有轻微的视觉差异,如按钮的颜色。

回调代码 保留一份指导调MLAPP文件中的代码和用户定义的函数。
教程 一步通过更改你的迁移应用程序。
移民报告 总结迁移工具成功完成的操作。列出任何限制或不支持的功能,特定于您的应用程序,以建万博1manbetx议行动如果可用。

回调代码

为了使GUIDE-style回调代码兼容应用程序设计师在你的应用程序UI组件,迁移工具使用一个函数调用convertToGUIDECallbackArguments。这个函数将应用程序设计师回调参数转换成代码需要GUIDE-style回调参数。的convertToGUIDECallbackArguments功能被添加到每个迁移回调函数的开始。需要应用程序设计师回调参数应用程序事件并返回GUIDE-style回调参数hObject,eventdata,处理。例如:

convertToGUIDECallbackArguments示例调用回调函数在一个应用程序设计师

每个GUIDE-style回调参数用于不同的目的:

  • hObject是对象的处理,其回调执行。从你的指导程序,组件UIControlButtonGroup对象,hObject是一个句柄UIControlPropertiesConverterButtonGroupPropertiesConverter对象。创建这些对象让你GUIDE-style代码在应用程序设计师工作回调函数。

  • eventdata通常是空的,但可以包含特定的信息回调事件的结构。

  • 处理是一个结构,包含UI的子组件迁移图有吗“标签”属性值设置的子组件UIControl对象在指南中应用UIControlPropertiesConverter迁移后的应用程序中的对象。同样的,孩子ButtonGroup对象是ButtonGroupPropertiesConverter迁移后的应用程序中的对象。

UIControlPropertiesConverterButtonGroupPropertiesConverter对象就像适配器GUIDE-style代码和应用程序之间的设计师组件和回调。一个UIControlPropertiesConverter对象为每个组件创建你的向导是一个应用程序UIControl对象。这些转换器对象与应用程序设计师在迁移后的应用程序UI组件。转换器对象具有相同的属性和值与原始UIControl从你的指导程序,但它适用于相关的应用程序设计师UI组件。

同样的,对ButtonGroup指导的对象ButtonGroupPropertiesConverter对象中创建应用程序设计师。这个对象可以设置SelectedObject属性到一个UIControlPropertiesConverter对象,这样按钮组SelectionChangedFcn回调逻辑函数。

特殊注意事项

有些情况下需要采取额外的步骤之前或之后你迁移应用程序。此表列出了常见的场景和编码模式,需要额外的步骤或手工代码更新。这并不是一个全面的列表。

指南的应用特性 描述 建议的行动
多窗口应用程序(即两个或两个以上的应用程序共享数据) 多窗口应用程序分别需要迁移的每个应用程序。迁移应用程序文件名附加_App。调用这些应用程序从其他应用程序必须被更新。 每个应用单独迁移。在调用应用程序、更新应用程序的名称,被称为新文件名。
单选按钮和单选按钮回调

迁移工具不迁移单选按钮没有父子关系到一个单选按钮组,或个体单选按钮的回调函数。

在应用程序中创建一个按钮组设计师和添加单选按钮。执行行为改变,选择单选按钮的时候创建一个SelectionChangedFcn回调函数的按钮组。有关更多信息,请参见uiradiobuttonButtonGroup属性
uistack 调用这个函数不支持应用程序设计师。万博1manbetx 确定这个功能对于迁移之前你的应用是至关重要的。没有解决方案应用程序设计师。
findobj,findall,gcbo

使用findobj,findall,或gcbo引用组件和设置属性可以错误。UIControl对象是迁移到等效应用设计师UI组件。这些迁移的组件来访问和设置属性,你必须把它放在UIControlPropertiesConverter对象。或者,你可以更新你的代码使用其相关的应用程序设计师组成,属性和值。

参考组件使用处理结构相反,或更新你的代码使用相关的应用程序设计师组成,属性和值。
输入参数个数nargchk 辅助功能迁移到应用程序和方法应用程序作为一个额外的输入参数。这可能会导致不正确的输入参数个数nargchk逻辑。 增加检查值,1
OutputFcn (varargout)输出

没有等效功能应用程序设计师。

实例化一个应用设计师应用迁移时,输出总是应用对象,而不是对象。

如果你的OutputFcn功能包括初始化代码是至关重要的应用程序,然后将其添加到年底OpeningFcn代替。

如果你的OutputFcn函数指定输出分配到工作区中当你实例化应用程序,如对象,那么您需要创建一个函数,该函数实例化应用程序。例如:

函数= MyGUIDEApp(变长度输入宗量)应用= MyMigratedApp(变长度输入宗量{:});= app.UIFigure;结束

如果你的向导的应用集成第三方组件的使用功能actxcontrol,请参阅对MATLAB应用程序使用Java和ActiveX的建议

艾滋病或添加新功能完全采用软件设计师代码风格

软件设计师和指导有不同的代码结构,调语法,和技术用于访问UI组件和共享数据。理解这些差异是有用的,如果你打算添加新的应用程序设计师功能迁移应用或想更新使用应用设计师代码风格和惯例。这个表总结了其中的一些差异。

区别 指南 程序设计师 更多的信息
使用数据和图形

指南称函数来创建应用程序窗口。

指南称函数来创建轴显示的情节。

支持所有MATLAB图形功能。万博1manbetx不需要指定目标轴。

程序设计师电话uifigure函数来创建应用程序窗口。

程序设计师电话uiaxes函数来创建轴显示的情节。

支持大多数MATLAB图形的功能。万博1manbetx

显示图形应用程序设计师
使用组件

指导创建大多数组件uicontrol函数。更少的组件是可用的。

程序设计师创建每个UI组件有自己的专用功能。更多的组件可用,包括,,TabGroup,DatePicker

构建的应用程序组件
更新UIControl对象和回调
访问组件属性

指导使用得到访问组件属性和用途处理指定一个组件。

例如,
name =得到(handles.Fig '名称')

应用程序设计支持万博1manbetx得到,但鼓励使用点符号来访问组件属性,并使用应用程序指定一个组件。

例如,
name = app.UIFigure.Name

回调程序设计师
管理应用程序代码

定义为一个代码可以调用本地函数的主要功能。所有的代码是可编辑的。

被定义为一个MATLAB类的代码。只有回调,辅助函数和自定义属性是可编辑的。

在应用程序设计代码视图管理代码
编写回调

需要回调输入参数处理,hObject,eventdata

例如,
myCallback (hObject eventdata处理)

需要回调输入参数应用程序事件

例如,
myCallback(应用程序、事件)

回调程序设计师
共享数据

存储和共享数据的回调函数和函数之间使用用户数据财产,处理结构,或guidata,setappdata,或getappdata函数。

例如,
句柄。currSelection =选择;
guidata (hObject处理);

存储和回调函数和函数之间共享数据,使用自定义属性来创建变量。

例如,
app.currSelection =选择

在应用程序设计应用程序共享数据

如果你想更新回调代码在您的应用程序迁移到使用应用程序设计代码风格和惯例,遵循这些步骤:

  1. 在你的回调函数,更新引用处理而不是使用结构应用程序对象。的处理结构给转换器代表的对象访问UIControl对象在指南中应用,而应用程序对象能够访问应用程序的UI组件设计应用程序。

    例如,一个GUIDE-style调设置写成BackgroundColor按钮的风格UIControl对象使用这段代码:

    handles.pushbutton1。写成BackgroundColor =“红色”;

    这段代码更新设置按钮直接UI组件的背景颜色:

    app.pushbutton1。写成BackgroundColor=“红色”;

  2. 更新回调代码的属性集。一般来说,UIControl对象及其等价的UI组件对象有许多相同的属性。然而,也有一些不同的属性名称或类型的值属性接受。看到一个比较UIControl和UI组件对象和属性,并学习如何更新你的代码使用UI组件,明白了更新UIControl对象和回调

  3. 一旦不使用一个回调函数hObject,eventdata,或处理参数,删除行代码添加的迁移工具创建这些参数:

    [hObject eventdata,处理]= convertToGUIDECallbackArguments(应用程序、事件);

如果你的应用程序使用的功能,比如创建对话框errordlgwarndlg,您还可以更新您的代码利用现代对话框创建专为应用程序构建,如uialertuiconfirm。有关更多信息,请参见更新对话框

出口指南应用MATLAB文件

导出向导程序将它转换成一个可编程应用程序通过再造指南图和程序文件在一个单一的MATLAB程序文件。

使用这个选项如果你计划:

  • 布局或进行少量更改应用程序的行为。

  • 开发你的应用程序以编程方式,而不是以交互方式。

导出应用程序,打开它在指导和选择文件>出口到MATLAB-file在MATLAB,或者右键单击图文件当前文件夹浏览器和选择出口到MATLAB-file。这会带来指导转变选项对话框。验证正确的图文件被选中了,然后点击出口。MATLAB文件创建一个项目_export附加到文件的名字。新文件包含原始回调代码+自动生成函数处理应用程序的创建和布局。这些添加函数的一个示例所示。

生成函数代码来处理应用程序的创建。

另请参阅

相关的话题