我遇到了句柄變量handles.scanOne
的問題。 我初始化它handles.scanOne = struct([]);
。相關回調是MATLAB GUIDE在2次回調後處理變量更新
function getButton1_Callback(hObject, eventdata, handles)
loadText(handles, hObject, 1, 'Select the original scans')
loadAxes(handles, 1)
和loadText更新句柄變量,而loadAxes使用更新的變量。
function loadText(handles, hObject, region, displayMessage)
...
...
handles.scanOne = struct('imageArray', imageArray, 'patientNumber', patientNumber, ...
'scanNumber', scanNumber, 'pathName', pathname, 'maxPixel', maxPixel);
guidata(hObject,handles)
然而,當我測試我的GUI第一次按鈕回調,handles.scanOne距離loadText
更新,但不更新整個結構。當我再次按下按鈕時,handles.scanOne
已更新爲整個結構。
編輯:我想我可能知道這個問題。傳入按鈕回調的handles
結構仍然是原始的。 handles
結構已經被loadText更新了,但是新的結構沒有被傳遞到按鈕回調中的任何東西。下面的鏈接有一個解決我的問題:http://www.mathworks.com/matlabcentral/answers/122423-gui-how-to-update-the-handles-when-calling-a-function-callback-inside-another-callback
你有'getButton1_Callback'結尾的這個命令嗎? :'guidata(hObject,handles)' –
我在'getButton1_Callback'的末尾沒有它,但是爲它所調用的'loadText'做。 – TryingToLearn
在使用GUIDE的時候,你必須在所有子函數的最後有'guidata(hObject,handles)' – scmg