Matlab GUI Автоматизация? - PullRequest
       5

Matlab GUI Автоматизация?

3 голосов
/ 21 сентября 2010

Допустим, кто-то создал графический интерфейс Matlab с использованием GUIDE.Теперь я хочу использовать этот код в программной среде - это не человек в цикле.Какой самый простой способ для меня «написать» сценарий взаимодействия человека с GUI, чтобы манипулировать различными элементами управления в соответствующей последовательности, чтобы инструмент подсчитывал мои числа и получал результаты?Я ищу неинвазивный способ повторного использования возможностей этого инструмента.Моей идеальной программной средой для вызова функциональности Matlab была бы Java.

Я могу открыть GUIDE .fig и отследить все функции обратного вызова на различных элементах управления, но шаблон проектирования, похоже, подталкивает вседанные в переменную дескрипторов.

У меня есть возможность использовать JA Matlab Builder для Java для генерации классов Java, если это полезно в любом случае.Любые предложения будут оценены.

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010

MTALAB GUI - это графический интерфейс Java. Для автоматизации GUI есть недавний пост в блоге Яира Альтмана: http://undocumentedmatlab.com/blog/gui-automation-robot/

Следующее применимо, только если вы можете переписать приложение.

Обычно для таких задач, как ваша, нет необходимости в какой-либо форме автоматизации графического интерфейса. Приложение должно иметь следующую архитектуру : Модель-> Бизнес-логика-> GUI . Каждый слой отделен от слоев над ним - Модель ничего не знает о Business Logic , которая ничего не знает о GUI . Затем можно вызвать Business Logic программно, даже не отображая графический интерфейс. Здесь - пример реализации MVC в MATLAB.

По этой причине РУКОВОДСТВА следует избегать. В MATLAB есть недокументированный менеджер компоновки , также есть некоторые на обмене файлами.

В вашем случае вы могли бы поместить всю Business Logic за пределы GUI Logic, чтобы обратные вызовы GUIDE не делали ничего, кроме вызова функций Business Logic.

1 голос
/ 21 сентября 2010

Извлеките следующую запись . Используйте

guiname('pushbutton', object, eventdata, handles)

для вызова обратных вызовов в 'guiname'.

Рассматривали ли вы использование шаблона MVC. Извлечение «модели» из вашего графического интерфейса может привести к повторному использованию кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...