2012-04-18 45 views
3

我是MATLAB的GUI編程新手,所以我的問題與此有關。Matlab:通過另一個函數調用時從回調函數獲取GUI句柄值

假設我使用GUIDE創建GUI。在創建功能

MyGUI_OpeningFcn(hObject, eventdata, handles, varargin) 

我調用另一個函數,

SamplingRate_Callback(handles.SamplingRate, eventdata, handles) 

定義爲

function SamplingRate_Callback(hObject, eventdata, handles) 

SamplingRate_Callback設置了幾個變量,

handles.a = 1; 
handles.b = 2; 
handles.c = 3; 

handles ST在SamplingRate_Callback函數中正確更新結構。我遇到的問題是,除非我改變功能

function handles = SamplingRate_Callback(hObject, eventdata, handles), 

我不能將數據返回給調用函數,MyGUI_OpeningFcn。我曾嘗試使用guidata(gcf, handles)guidata(hObject, handles),但都無效。

您能否解釋一下這個問題?

此外,我不確定何時使用guidata(gcf, handles)guidata(hObject, handles)

感謝您的幫助!

回答

0

如何在MyGUI_OpeningFcn函數中調用SamplingRate_Callback?在我看來,你還沒有定義返回值,在這種情況下這將是values

的解決將是這樣的:

function [handles] = SamplingRate_Callback(hObject, eventdata, handles) 

然後你會從MyGUI_OpeningFcn這樣叫SamplingRate_Callback

handles = SamplingRate_Callback(handles.SamplingRate, eventdata, handles); 
+0

嗨nrz,謝謝你的回答。是的,那會起作用。我想我不明白爲什麼當通過使用它的GUI元素直接調用SamplingRate_Callback時,可以使用guidata簡單地保存持久句柄值,但是如果以另一種方式調用相同的函數,guidata不起作用。那有意義嗎?你知道爲什麼嗎? – user1340654 2012-04-19 05:44:04

0

根據你所說的數據是說,你可以使用getappdatasetappdata保存和加載數據到/從對象本身(我通常使用數據將被繪製在軸上)。

相關問題