我有一个问题要问这里的 MATLAB 大师..
所以这是我的代码(只显示与这里的问题相关的代码行):
mainProcess(hObject, handles)
handles.Checkpoint2 =1;
guidata(hObject, handles);
function testGUI1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.Checkpoint1 = 1;
mainProcess(hObject, handles);
handles.Checkpoint3 = 1; //EDIT: Checkpoint2 is also not visible at this line
guidata(hObject, handles);
handles.Checkpoint4 = 1;
function saveAndContinueButton_Callback(hObject, eventdata, handles)
(breakpoint here) --> faceDatabase(handles.currentImageIteration).lookingTowardsCamera=handles.lookingAtCamera;
因此,在上面的代码中,我在代码的不同部分创建了这些“检查点”,并在分别单击保存和继续按钮时查看其中哪些是可见的......在调用我的名为 mainProcess 的自定义函数之前创建检查点 1 , Checkpoint2 是在 mainProcess 的代码中创建的,Checkpoint3 是在 mainProcess 执行完成后创建的,并且控制权返回到调用它的函数,即 testGUI1_OpeningFcn ...并且 Checkpoint4 是在 testGUI1_OpeningFcn 中创建的,但是在句柄结构之后是在 testGUI1_OpeningFcn 代码中更新..
所以我的问题是,当单击按钮并且我看到此时可见的内容时,检查点 1 和 3 对按钮回调代码可见,但检查点 2 和 4 不可见......我知道检查点 4 不是可见,因为它是在 testGUI1_OpeningFcn 的代码中更新了句柄结构之后创建的……但是为什么 Checkpoint2 不可见,即使在 mainProcess 代码的末尾,我确实放了一行:
guidata(hObject, handles);
我的意思是 mainProcess 函数正在获取对 hObject 和句柄的引用,因此它应该具有对它的写访问权限,对吗?
那么为什么按钮的回调代码看不到 Checkpoint2 .. 呢?
有什么线索吗?
编辑:我只是想看看 Checkpoint2 是否在 mainProcess 的调用函数中可见,在控件返回调用者之后,即使 Checkpoint2 不可见(参见上面代码中的编辑)..