PDA

查看完整版本 : Matlab GUI自动化?


poster
2019-12-10, 20:48
假设有人使用GUIDE制作了Matlab GUI。现在,我想在程序化环境中使用该代码-这不是循环中的人。对我来说,最简单的方法是“编写”与GUI的人机交互,以便按适当的顺序操纵各种控件,以使该工具处理我的数字并获得其结果?我正在寻找一种无创方式来重用此工具的功能。我理想的用于调用Matlab功能的编程环境是Java。

我可以打开GUIDE .fig并找出各个控件上的所有回调函数,但是设计模式似乎是将所有数据推到handles变量中。

我有能力使用Matlab Builder JA for Java生成Java类,如果这样做有帮助的话。任何建议,将不胜感激。



回答:

MTALAB GUI是Java GUI。对于GUI自动化,最近在Yair Altman博客上发布了一个帖子: http (http://undocumentedmatlab.com/blog/gui-automation-robot/) : //undocumentedmatlab.com/blog/gui-automation-robot/ (http://undocumentedmatlab.com/blog/gui-automation-robot/)

仅当您可以重写应用程序时,以下内容才适用。

通常不需要像您这样的任务就使用任何形式的GUI自动化。应用程序应具有以下架构 (http://en.wikipedia.org/wiki/Three-tier_(computing)) : 模型->业务逻辑-> GUI 。每个层与其上层都是分离的- 模型对Business Logic一无所知,而对GUI则一无所知。这样就可以以编程方式调用Business Logic,而无需显示GUI。 这 (https://stackoverflow.com/questions/3490481/how-to-implement-the-idea-of-mvc-design-in-matlab-guis/3492461#3492461)是在MATLAB中实现MVC的示例。

因此,应避免使用GUIDE。 MATLAB中有一个未记录的布局管理器 (http://undocumentedmatlab.com/blog/matlab-layout-managers-uicontainer-and-relatives/) ,文件交换中也有一些。

在您的情况下,您可以将整个业务逻辑放在GUI逻辑之外,从而使GUIDE回调仅执行您的业务逻辑功能。



更多&回答... (https://stackoverflow.com/questions/3755672)