MATLAB怎么在GUI中返回参数?
发布网友
发布时间:2022-05-06 22:58
我来回答
共1个回答
热心网友
时间:2023-09-30 14:00
在GUI子程序的OpeningFcn函数的结尾加上uiwait(handles.figure1);
figure1是子GUI的Tag;
子GUI中控制程序结束(如"OK”和"Cancel"按钮)的callback末尾加上uiresume(handles.figure1),不要将delete命令放在这些callback中;
在子GUI的OutputFcn中设置要传递出去的参数,如
varargout{1}
=
handles.par1;varargout{2}
=
handles.par2;末尾添加
delete(handles.figure1);
结束程序。
在GUI的OpenFcn中,如果不加uiwait,
程序会直接运行到下面,执行OutputFcn。也就是说程序一运行,返回值就确定了,再在其它部分对handles.output作更改也没有效果了。
加上uiwait后,只有执行了uiresume后,才会继续执行到OutputFcn,在此之前用户有充分的时间设置返回值。
在一个GUI中调用另一个GUI时,主GUI不需要特别的设置,同调用普通的函数一样。在打开子GUI界面的同时,主程序还可以响应其它的控件。不需要担心子GUI的返回值被传错了地方。