2010-09-20 104 views
3

可以說有人用GUIDE製作了一個Matlab GUI。現在我想在編程環境中使用該代碼 - 這不是人在環路中。對我來說,「腳本化」與GUI的人機交互以便按照適當的順序操縱各種控件以使工具縮小我的數量並獲得其結果,對我來說最簡單的方法是什麼?我正在尋找一種非侵入性的方式來重用此工具的功能。我調用Matlab功能的理想編程環境是Java。Matlab的GUI自動化?

我可以打開GUIDE .fig並找出各種控件上的所有回調函數,但設計模式似乎是將所有數據都推送到句柄變量中。

我已經有能力使用Java Builder的JA生成Java類,如果這有助於任何方式。任何建議,將不勝感激。

回答

4

MTALAB GUI是Java GUI。對於GUI自動化,Yair Altman博客上最近發佈了一篇文章:http://undocumentedmatlab.com/blog/gui-automation-robot/

以下內容僅適用於您可以重寫應用程序的情況。

通常不需要任何形式的GUI自動化來完成像您這樣的任務。應用程序應該有following architecture模型 - >業務邏輯 - > GUI。每層與上面的層分離 - 模型一竅不通GUI一無所知。然後可以以編程方式調用業務邏輯,而無需顯示GUI。 Here是MATLAB中MVC實現的一個例子。

因此,應避免使用GUIDE。在MATLAB中有一個無證件layout manager,文件交換中也有一些。

在您的情況下,您可以將整個業務邏輯放在GUI邏輯之外,使GUIDE回調只能稱爲您的業務邏輯功能。

+0

+1完美的答案,應該僅用於**測試目的**,如您所說。 – zellus 2010-09-21 16:35:09

1

提取形式如下post。使用

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

調用'guiname'中的回調。

你有沒有考慮過使用MVC模式。從GUI中提取「模型」可能會給您帶來可重複使用的代碼。