簡體   English   中英

在Matlab中,如何在沒有GUI的情況下調用GUI回調函數?

[英]In Matlab, how to call GUI callback functions without the GUI?

我不是GUI程序員,這將變得顯而易見。 如果有的話,我正在嘗試取消GUI。 我正在使用一個名為art的程序(如果有用的話,可以在這里找到),該程序會生成我想保存的圖形和變量。 您可以從批處理腳本中調用art,並使其輸入讀取配置文件,這就是我正在做的事情,但是您必須在GUI中手動生成並保存其大部分輸出(變量和圖形)。 我很想自動化這個過程,但是我真的很努力。

我認為,如果我知道如何強制調用回調函數,則將解決我問題的核心。 例如,在showCorr_Callback(hObject, eventdata, handles)有一個函數(由GUI中的單選按鈕控制)。 它具有要執行的測試條件:

if (get(handles.showCorr,'Value') == get(handles.showCorr,'Max'))

我嘗試插入

mx = get(handles.showCorr,'Max')) 
setappdata(handles.showCorr,'Value', mx) 

進入我知道執行的函數中,即打開function art_OpeningFcn(hObject, eventdata, handles, varargin) 這似乎沒有任何作用。 如果我知道如何執行回調函數,也許我可以將保存圖形的代碼插入函數中。 在Matlab的GUI腳本中,某些地方必須不斷測試GUI狀態的變化。 那東西在哪 我該如何愚弄它以為單選按鈕已被按下?

感謝您的幫助,如果需要提供更多信息,請告訴我。

首先,如果要設置handles.showCorrValue ,則不會使用setappdata ,因為setappdata會將任意數據(按鍵/值對)存儲到圖形對象中。 您實際上要設置Value 屬性

set(handles.showCorr, 'Value', get(handles.showCorr, 'Max'))

這將觸發分配給handles.showCorr所有回調。

如果由於某種原因這不會觸發回調,則可以隨時手動觸發它。 如果您已經知道回調,則可以顯式調用它。

showCorr_Callback(hObject, eventdata, handles);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM