Matlab GUI自动化?

3
假设有人使用 GUIDE 制作了一个 Matlab GUI。现在,我想在程序化环境中使用该代码 - 即无需人工干预。我该如何最简单地“编写脚本”来操作 GUI 中的各种控件,以便按适当的顺序操纵它们来使工具计算我的数字并得出结果?我正在寻求一种非侵入式的方式来重复使用此工具的功能。我希望调用 Matlab 功能的理想编程环境是 Java。
我可以打开 GUIDE .fig 并在各种控件上跟踪所有回调函数,但设计模式似乎是将所有数据推进 handles 变量中。
如果有帮助的话,我有使用 Matlab Builder JA for Java 生成 java 类的能力。如果有任何建议,请告诉我。
2个回答

4

MTALAB GUI是Java GUI。关于GUI自动化,Yair Altman的博客上最近发表了一篇文章:http://undocumentedmatlab.com/blog/gui-automation-robot/

以下内容仅适用于您可以重新编写应用程序的情况。

对于您这样的任务,通常不需要任何形式的GUI自动化。应用程序应该具有以下架构模型->业务逻辑->GUI。每个层都与其上面的层分离 - 模型不知道业务逻辑业务逻辑不知道GUI。因此,甚至可以在不显示GUI的情况下以编程方式调用业务逻辑。 这里提供了MATLAB中MVC实现的示例。

因此,应避免使用GUIDE。MATLAB中有一个未记录的布局管理器,还有一些在文件交换中的管理器。

在您的情况下,您可以将整个业务逻辑放在GUI逻辑之外,使GUIDE回调仅调用您的业务逻辑函数。


+1 完美的答案,仅供测试目的使用,就像您提到的那样。 - zellus

1
从以下 post 中提取。使用
guiname('pushbutton', object, eventdata, handles)

调用'guiname'中的回调函数。

您是否考虑过使用MVC模式。从GUI中提取“模型”可能会让您拥有可重用的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接