2014-04-07 131 views
0

我有這些回調函數:如何從一個回調參數發送回其他回調?

function q7_OpeningFcn(hObject, eventdata, handles, varargin) 

----- 
----- 
function column_icrement_Callback(hObject, eventdata, handles) 

---- 
---- 

function row_icrement_Callback(hObject, eventdata, handles) 
---- 
---- 

function width_increment_Callback(hObject, eventdata, handles) 
--- 
--- 

這些都是過去的3個功能,我想從參數發送function q7_OpeningFcn(hObject, eventdata, handles, varargin)到。我已經成功加載了圖片,但我不確定是否可以發送超過3個參數,或者不能調整行,列,高度,寬度?

回答

3

不要使用全局變量。使用handles結構來傳遞這些數據。

q7_OpeningFcn中,存儲此數據(例如,handles.rows=...)。

在回調函數中,您將獲得handles結構中的數據。

如果您在回調中更改handles中的值,則需要運行guidata(hObject,handles)。請參閱Store Data Using the guidata Function以及該示例。

您還可以使用setappdata/getappdata的名字("application data")來存儲和檢索數據。有關這兩種方法的詳細信息,請參閱文章Share Data Among Callbacks

Even more on storing data in a GUI

+0

你能說明我是如何使用shell的?我喜歡你的方式,因爲它看起來像動態可以。編寫代碼時我無法生成? – user3508182

+0

如果您使用GUIDE創建GUI,它將在整個過程中使用,並對其使用情況發表評論。有關示例,另請參閱[這裏](http://www.mathworks.com/help/matlab/ref/guidata.html)。查看我的編輯。 [Here](http://www.mathworks.com/help/matlab/creating_guis/share-data-among-callbacks.html#bt9p4xi)是一個簡單的例子。 – chappjc

+0

thnx很多非常豐富。當我需要你的幫助時幫助我。 thnxx – user3508182

0

定義全局變量。
http://www.mathworks.com/help/matlab/ref/global.html

總結:把global row, col, ...q7_OpeningFcn開始。那麼在負責這些變量中的一個的每個函數中,將global row=value放在該函數中。

例如:

function q7_OpeningFcn(hObject, eventdata, handles) 
    global column, row, width 
    doStuff 
end 

function column_icrement_Callback(hObject, eventdata, handles) 
    global column 
    column=value 
end 

function row_icrement_Callback(hObject, eventdata, handles) 
    global row 
    row=value 
end 

function width_increment_Callback(hObject, eventdata, handles) 
    global width 
    width=value 
end 
+0

除了這個問題。是否可以放置檢查按鈕是否已被刪除然後遞增該值? – user3508182