13.如何通过定义figure 的CloseRequestFcn函数,设置两个或多个界面的切换

刚开始接触GUI ,进行两个界面切换时,总是将两个面板先后叠加,又要重新定义父与子的关系,一旦需要对某个控件进行修改,则非常麻烦。

现在掌握了一个小技巧,可以新建两个或多个figure,其中一个figure为主界面,通过全局变量并设置主界面和其他界面的CloseRequestFcn函数,实现主界面控制其他界面,某个界面出现出题,只需对指定的figure进行修改。

示例

1:新建一个主界面和子界面,并绘制静态界面

13.如何通过定义figure 的CloseRequestFcn函数,设置两个或多个界面的切换

13.如何通过定义figure 的CloseRequestFcn函数,设置两个或多个界面的切换

13.如何通过定义figure 的CloseRequestFcn函数,设置两个或多个界面的切换

 

2:编辑主界面和子界面的CloseRequestFcn函数

  主界面:

function figure1_CloseRequestFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global H
if (H==1)
    close(sub_figure);
end

% Hint: delete(hObject) closes the figure
delete(hObject);

子界面:

function figure1_CloseRequestFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global H
H=0;

% Hint: delete(hObject) closes the figure
delete(hObject);

3 :编辑主界面的控件,从而点击控件即可实现子界面的显示。

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global H
sub_figure;
H=1;

4 关闭子界面,主界面不会退出,但是关闭主界面,子界面会随之退出。