图片缩略图

MATLAB应用程序设计器迁移工具指南

使用GUIDE到应用程序设计器迁移工具来帮助将GUIDE应用程序迁移到应用程序设计器。

255下载

更新2021年3月10日

编者按:该文件被选为MATLAB中央本周精选

R2020a是将应用迁移到App Designer的推荐版本。

从R2020a开始,迁移工具的改进显著减少了在app Designer中运行应用程序所需的手动代码更新时间和数量。这些改进有助于使你的guide风格的回调代码与你迁移的应用程序中的App Designer UI组件兼容。然而在R2018a到R2019b版本中,你必须手动更新所有的函数和回调代码才能与App Designer一起工作。
有关迁移工具最新版本的详细信息,请参阅GUIDE迁移策略(//www.tianjin-qmedu.com/help/matlab/creating_guis/differences-between-app-designer-and-guide.html)中的MATLAB文档。

***背景***
在R2019b中,MathWorks宣布在MATLAB中构建应用程序的GUIDE设计环境将在未来的版本中删除。GUIDE是建立在旧的第三方技术上的,不能支持基于web的现代工作流和MATLAB用户要求的功能。万博1manbetx

App Designer首次发布于R2016a,是GUIDE的替代品,是在MATLAB中构建应用程序的推荐环境。它是用基于web的技术构建的,比如JavaScript、HTML和CSS,所以它构建的环境和应用程序都是网络友好的。

App Designer提供:
•改进的设计画布和扩展的组件集
•一个健壮的编程模型,用于管理应用程序中的数据
•桌面、网页和MATLAB在线的应用程序共享

将GUIDE应用程序迁移到应用程序设计器可以让你继续交互式地开发应用程序的布局。它还允许您利用App Designer提供的新功能和改进。有关功能列表,请参阅比较GUIDE和App Designer (//www.tianjin-qmedu.com/s manbetx 845products/matlab/app-designer/comparing-guide-and-app-designer.html?s_tid=srchtitle).

***迁移工具的特性***
GUIDE to App Designer迁移工具是一个半自动的工具,可以将GUIDE应用程序转换为App Designer。它生成一个MLAPP文件,其中包含:
•App Designer组件、属性配置和布局,这些都等同于你在GUIDE中创建的
•GUIDE中定义的函数和回调代码的副本

该工具还生成一个迁移报告,其中列出了任何限制或不支持的功能,以及解决问题的建议操作(如果可用的话)。万博1manbetx

评论及评分(69

以色列西尔柏

你好,Dain, actxcontrol (//www.tianjin-qmedu.com/help/matlab/ref/actxcontrol.html)在App Des万博1manbetxigner中不受支持,并将在MATLAB的未来版本中删除,但actxserver (//www.tianjin-qmedu.com/help/matlab/ref/actxserver.html)是受支持万博1manbetx的,并且仍然可以用来帮助解决您的目标,这取决于您的用例。App Designer也有其他扩展选项,如自定义UI组件(//www.tianjin-qmedu.com/help/matlab/developing-custom-ui-component-classes.html)和uihtml (//www.tianjin-qmedu.com/help/matlab/ref/uihtml.html)这可能对你有帮助。我们有兴趣更多地了解您的目标,并帮助您考虑其他解决方案。万博 尤文图斯请给我们留言//www.tianjin-qmedu.com/matlabcentral/profile/contact/5775824我们很乐意和你约个时间。

dain杰雷米

在应用程序设计器中不能工作的“actxserver”函数的替代解决方案是什么?
如果没有这个函数,我们如何在应用程序设计器中调用外部程序?

在你的网站上没有太多帮助:https://fr.mathworks.com/s manbetx 845products/matlab/app-designer/java-swing-alternatives.html?s_tid=mwa_osa_a

我不理解Matlab策略与App Designer代替GUI。

小东刘

亚当·H

我看到R2020b更新了。这个工具在R2020a和20b之间有什么变化?

Hi Hadi,迁移工具迁移图形的位置属性,因为它是在GUIDE中设置的。如果图形的位置在屏幕尺寸之外,GUIDE有一些额外的逻辑将其完全放在屏幕上。App Designer不会这样做,所以为了解决这个问题,你可以使用App Designer中的属性检查器来调整迁移后的GUIDE应用的图形位置值,使其符合你的屏幕尺寸,或者你可以在迁移后的应用的启动函数中使用MOVEGUI命令来将应用定位在屏幕上。

哈迪正义与发展党

我有一个非常简单的GUI开发指南。当我在设计视图中进行迁移时,在某种程度上,一切都类似于Guide中的主要图形,但当我运行它时,Gui似乎来到了屏幕的上角落,在那里我无法移动它!!迁移工具的版本是“GUIDE to App Designer migration tool for MATLAB 20.1.0 MATLAB”

嗨,迈克尔,根据你的描述,我们无法复制这个问题。请联系技术支持,我们将很乐意帮助您解决此问题。万博1manbetx您可以在support@mathworks.com上万博1manbetx联系技术支持,或者创建帮助单//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html.如果可能,请包含您的指南应用程序或您的指南应用程序的一个版本,以再现该问题。

迈克尔Mullaney

不确定我的第一个消息发生了什么,但我无法在代码视图中编辑一个最近迁移的指南应用程序使用应用程序设计器迁移工具的代码。我指的不是灰色区域中不可编辑的代码,而是白色代码本身。我在.mlapp代码中有一些简单的错误,如回车返回将语句的末尾移动到下一行,具体来说:

app.axesML.YTickLabel = {'1';“0.8”;“0.6”;“0.4”;“0.2”;“0”;“-0.2”;“-0.4”;“-0.6”;“-0.8”; '-1
'};

我得到错误:

'一个带引号的字符向量是不终止的'

我不能编辑它来修复它,也不能对代码进行任何其他更改。问题出在我刚刚升级到的版本2020a上。我重启了电脑。我在安装迁移工具时没有任何错误。我运行的是windows 10,它也刚刚更新过。

米歇尔·赫希

嗨,伊迪丝,看起来迁移工具的安装可能有问题。尝试以下步骤概述//www.tianjin-qmedu.com/matlabcentral/answers/318635-how-do-i-perform-a-clean-re-installation-of-a-万博1manbetxsupport-package尝试重新安装。如果这不能解决您的问题,请联系安装和许可支持以获得安装迁移工具的帮助。万博1manbetx你可以给他们发电子邮件到support@mathworks.万博1manbetxcom,或创建一个帮助票在//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

伊迪丝·瓦莱

每次我点击Browse按钮,选择一个文件迁移到App Designer,我得到以下错误:
使用message/getString错误
无法加载消息目录'appmigration:appmigration'。请
检查文件的位置和格式。

错误
appmigration.internal.GUIDEAppMigrationTool / BrowseButtonPushed(线
64)
[filename, pathname] = uigetfile('*.fig',
getString(消息(“appmigration: appmigration: SelectFigFile”)));
使用matlab.ui.control.internal.controller.ComponentController/executeUserCallback错误(第335行)
计算按钮PrivateButtonPushedFcn时出错。

托马斯,试着按照上面列出的步骤//www.tianjin-qmedu.com/matlabcentral/answers/318635-how-do-i-perform-a-clean-re-installation-of-a-万博1manbetxsupport-package尝试重新安装。如果这不能解决您的问题,请联系安装和许可支持以获得安装迁移工具的帮助。万博1manbetx你可以给他们发电子邮件到support@mathworks.万博1manbetxcom,或创建一个帮助票在//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

托马斯Koenig

我一直无法在我的mac上安装附加组件。我一直收到“此文件夹名称无效”的消息。文件夹名称可以包含字母、数字和“-”、“_”、“。',或者'/'。目标文件夹不能命名为“private”。无论我在Matlab的首选项中选择什么插件的安装文件夹。默认的("/Users/thomaskoenig/Library/Application Support/M万博1manbetxathWorks/MATLAB Add-Ons")也会产生相同的错误消息

MC曾,尝试以下步骤概述//www.tianjin-qmedu.com/matlabcentral/answers/318635-how-do-i-perform-a-clean-re-installation-of-a-万博1manbetxsupport-package尝试重新安装。如果这不能解决您的问题,请联系安装和许可支持以获得安装迁移工具的帮助。万博1manbetx你可以给他们发电子邮件到support@mathworks.万博1manbetxcom,或创建一个帮助票在//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

mc蹭

我做了一个离线安装,但没有使它成功安装,我得到一个'支持软件安装程序错误:系统没有启动支持包安装所需的MATLAB版本',而我的MATLAB版本是R2019b,谁万博1manbetx可以帮助?

EMILITTA迈克尔

Charles,使用GUIDE构建的应用程序将继续得到支持,并在MATLAB中运行,即使在GUIDE拖万博1manbetx放环境不再可用之后。此外,通过在GUIDE“文件”菜单中选择“导出到MATLAB文件”,可以继续通过编程方式编辑GUIDE应用程序,将它们导出到单个MATLAB文件。为了交互式地编辑GUIDE应用程序,它们需要迁移到应用程序设计器中。

我们正在不断地向应用程序设计器和应用程序设计器迁移工具指南添加新功能,以改善迁移体验。在即将发布的版本中,迁移工具将通过附加的自动化功能进行增强,以最小化迁移应用程序所需的时间。

关于GUIDE和App Designer的最新功能对比,请访问://www.tianjin-qmedu.com/s manbetx 845products/matlab/app-designer/comparing-guide-and-app-designer.html

查尔斯。詹姆斯

强烈建议您不要放弃GUIDE,除非您能够支持所有特性并使迁移更加简单。万博1manbetx由于不支持的特性,我们的gui不能被迁移,我们不能浪费时间从头重新开发它们。万博1manbetx如果Matlab未来的版本不再继续支持使用GUIDE构建的gui,我会非常担心。万博1manbetx

Manuel ulb

是否有一个版本的迁移工具的Matlab R2016b?谢谢!

应用程序设计器迁移工具指南Pankaj仅适用于R2018a及更高版本。

Pankaj Jha

这与MATLAB 2014a兼容吗

你好,Muhammad,迁移工具支持MATLAB R2018a和Win万博1manbetxdows 10。尝试以下步骤概述//www.tianjin-qmedu.com/matlabcentral/answers/318635-how-do-i-perform-a-clean-re-installation-of-a-万博1manbetxsupport-package尝试重新安装。如果这不能解决您的问题,请联系安装和许可支持以获得安装迁移工具的帮助。万博1manbetx你可以给他们发电子邮件到support@mathworks.万博1manbetxcom,或创建一个帮助票在//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

我的MATLAB版本是2018a,我正在使用windows 10,错误说,“这个包不支持您的操作系统或您的MATLAB版本。”万博1manbetx我以为是上面2018a的。

Ioana Nistea

应用程序设计器没有工具栏?开口函数没了?色彩定制明显减少?这个新东西就是个笑话,为什么要发布一个功能比你以前的产品更少的东西呢?我尝试着移植我的一个gui,但它却把事情弄得一团糟,这将花费我不合理的时间去实现它的功能,更别说去修正它的美学了。

Hyesung金

在没有网络的情况下如何安装?

拉尔斯·林格伦

每次我开始引导并选择迁移或打开我的fig文件,然后选择迁移,我会得到安装迁移工具的建议,我已经做了很多次(包括在安装和重新开始之间退出我mac上的Matlab 2019b)。
为什么matlab不能识别已经安装的迁移工具?

Mike,这是迁移工具19.2.0版本的一个bug。看到//www.tianjin-qmedu.com/matlabcentral/answers/483471-why-do-uicontrol-components-disappear-after-using-app-designer-migration-tool-in-r2019b-to-migrate-g用于解决方法,直到修复可用为止。

迈克帮

这对我毫无帮助。我移植了一个GUIDE GUI的20多个元素,我收到了一个空白的应用程序和两个白盒。该报告提供了一点点指导,但我必须手动重新创建整个GUI。

快乐的博士

如何从Appdesigner中的GUIDE中获得相同的功能“PickableParts”?

王董

嗨,有没有计划在AppDesigner中获得datacursormode的支持?万博1manbetx

在修复可用之前,请参见//www.tianjin-qmedu.com/matlabcentral/answers/483471-why-do-uicontrol-components-disappear-after-using-app-designer-migration-tool-in-r2019b-to-migrate-g针对迁移工具R2019b(19.2.0)版本中阻止UIControl组件被迁移的错误,提供了一个解决方案。

R2019b迁移工具(版本19.2.0)有一个错误,导致GUIDE应用程序无法正确迁移。我们正在修复,并将尽快更新该工具。R2019a和之前版本的迁移工具不会出现此问题。对于此问题可能造成的任何不便,我们深表歉意。

Macey保罗

2019b对我没用。我使用了一个更简单的GUIDE GUI,但它只创建了一个空白的App Designer GUI。我有一个列表框,按钮,单选框,复选框,编辑框,甚至纯文本,但除了一个框架(但在错误的地方)。我也有背景色没有迁移。没有报告重大错误。

Justin,迁移工具应该生成一个mlap文件,并在App Designer中打开它。请通过support@mathworks.com联万博1manbetx系技术支持或创建帮助票//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html寻求帮助。

贾斯汀Kadow

用于MATLAB的应用程序设计器迁移工具指南不能工作。当我浏览一个.fig文件并单击Migrate时,它似乎上传了一个文件,但什么也没有发生。

贾斯汀Kadow

画了

高科技人

xiufa杨

Malgorzata,从错误消息来看,你可能已经跟踪了“uibutton”,这是一个用于创建按钮的MATLAB函数,由迁移工具使用。要解决这个问题,您可能需要从MATLAB路径中删除“uibutton”函数,重命名它,或放入MATLAB包中。如果您需要进一步的帮助,请通过support@mathworks.com联系技术支持或创建帮助票万博1manbetx//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

马格达雷娜Florek

嗨,我试过用Matlab 2019使用这个工具,但在试图迁移我的应用程序时出错。因为我用指南制作的旧应用非常复杂,代码可能会被认为是混乱的,我决定从一些非常简单的东西开始,从指南模板(带有轴和菜单的Gui,以及之后的模态问题对话框)创建一个应用。即使是这样简单的应用程序,我不能迁移他们,我得到错误的参数不正确的数量,例如:
"使用uicontrol错误
输入参数数目不正确。

uibutton错误(第93行)
h = uicontrol(变长度输入宗量{:})

appmigration.internal.GUIDEAppMigrationTool/createComponents中的错误(第165行)
app. migratebutton = uibutton(app. migratebutton)UIFigure,“推”);

appmigration.internal.GUIDEAppMigrationTool/createComponents中的错误(第214行)
createcomponent(应用)

convertguideapp(第13行)
app.MigrationAppInstance =
appmigration.internal.GUIDEAppMigrationTool(变长度输入宗量{:});

guidefunc>layoutExportAppDesigner错误(第1735行)
appmigration.internal.convertGUIDEApp(文件名);

guidefunc中的错误(第49行)
varargout = layoutExportAppDesigner(varargout {:});"

有什么问题吗?

Vasishta,你所描述的组件的无序/重叠布局可能是一个错误,因为迁移工具应该几乎重新创建与GUIDE应用程序相同的布局。请回复您正在使用的迁移工具的版本,以便我们确定如何提供帮助。您可以通过查看MATLAB命令>> matlabshared. supportkkg . getinstalled的输出来获得版本。万博1manbetx另外,在执行迁移时还缺少哪些图形组件?注意,可视性设置为off的组件在GUIDE中仍然可见,但在App Designer设计视图中不可见,这可能是某些组件丢失的原因。

VBBV

感谢您提供的迁移工具。
当我尝试从GUIDE迁移到应用设计器环境时,操作成功了,但是在布局上有巨大的差异,缺少图形组件,弹出菜单和复选框等与使用GUIDE创建的原始布局设计有混乱/重叠。
有人知道如何从GUIDE迁移到Appdesigner界面而不更改在GUIDE中创建的原始布局吗??任何帮助都很感激。

约翰Spicer

如果没有工具栏,就没有理由转移到App Designer。我不敢相信他们会发布一个新的GUI工具没有这个。
何苦呢?

ShuKun杜

Umair,安装迁移工具,启动App Designer,在“Designer”页签中选择“Open > Open GUIDE to App Designer migration tool”。在弹出的对话框中单击“获取附加组件”。然后,Add-on Explorer将启动并打开迁移工具的页面。按“安装”下载及安装工具。如果您需要进一步的帮助,请在support@mathworks.com上联系安装和许可支持,或者在万博1manbetx//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

UMAIR RASOOL

先生,我对如何安装MATLAB应用程序设计器迁移工具指南有点困惑。

成国栋李

Roman,请联系安装和授权支持以获得离线安装迁移工具的帮助。万博1manbetx你可以给他们发电子邮件到support@mathworks.万博1manbetxcom,或创建一个帮助票在//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

罗马Gorlov因此

你能提供。mltbx格式或其他任何东西吗?由于公司的防火墙,我安装这个时有问题。

Shreeprasad Bhat

Teodo

格雷格,谢谢你的评论。对于所有单位,GUIDE都是基于0的,除了像素是基于1的。因为App Designer使用像素单位,所以在执行迁移之前,迁移工具首先将所有单位转换为像素。因此,迁移工具不需要调整1像素的位置。

格雷格

供您参考——来自R2016b发布说明——“App Designer组件的位置属性在像素单位中使用基于1的原点。在R2016a中,App Designer组件使用了基于0的起点。”GUIDE还使用基于0的原点。

这个迁移工具不会给左侧/底部的元素添加1。

阿Gurram

应用程序设计器迁移工具指南可用于R2018a及更高版本。

TM Hoogland

这个迁移工具与哪个版本的MATLAB兼容?
在R2016a中,我得到以下错误:' App Designer Migration Tool for MATLAB的指南在此版本的MATLAB中不可用'。假设迁移工具在最近的版本之间是可互操作的,这似乎是合理的。

格雷格,谢谢你让我们注意到这件事。我们在描述中添加了一些额外的信息,以帮助人们发现和使用该工具。

格雷格

我已经向TheMathWorks提交了一个投诉,说这些工具几乎不可能被发现(弄清楚安装后如何启动)。以下是诀窍:

方法# 1:
1)执行MATLAB命令“guide”
2)在“GUIDE快速入门”对话框中,导航到“打开现有GUI”选项卡
3)按下“迁移到应用设计器…”

方法# 2:
1)在GUIDE UI设计环境中打开你已经创建的基于GUIDE的应用/图形。
2)选择“文件—>迁移到应用设计器…”

方法# 3:
1)启动应用设计器
2)打开——>打开应用设计师迁移工具指南…

方法# 4:
> > appmigration.internal.GUIDEAppMigrationTool

Tara,这个工具是为MATLAB R2018a和更高版本设计的。

Tara Prasad Mishra

我在安装这个包时出现错误。错误提示:“您的操作系统或您的MATLAB版本不支持此包。”万博1manbetx我使用的是Windows 8.1和Matlab的2017b。

Jandongξ

Lyamine Hedjazi

凯文·李

克里斯门户

MATLAB版本兼容性
使用R2018a创建
兼容R2018a ~ R2021a
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!