【发布时间】:2015-06-26 00:38:32
【问题描述】:
我遇到了句柄变量handles.scanOne 的问题。
我初始化它handles.scanOne = struct([]);。相关回调是
function getButton1_Callback(hObject, eventdata, handles)
loadText(handles, hObject, 1, 'Select the original scans')
loadAxes(handles, 1)
loadText 更新handles 变量,而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有它。 -
在使用 GUIDE 时,所有子函数的末尾必须有
guidata(hObject, handles)
标签: matlab matlab-guide