一、需求:
matlab 多窗口GUI编程中,主窗口用于数据输入,通过主窗口上的按钮打开子窗口(不同子窗口为不同的功能模块),点击子窗口上按钮时,自动读取主窗口上控件的数据进行运算。与窗口间数据传递不同的是,数据传递不能实时更新主窗口中的数据。
二、方法:
主窗口代码调用子窗口时,将主窗口的handles作为输入数据传递给子窗口,子窗口就可直接对该handles的控件进行操作。
例子:fig1为主窗口,fig2为子窗口,点击fig1的按钮打开子窗口fig2,再点击fig2的按钮实现读取fig1文本框控件的内容并显示;无需重新打开fig2,修改fig1文本框内容后,点击fig2的按钮可更新数据。
fig1按钮的回调函数:
function pushbutton1_Callback(hObject, eventdata, handles)
fig2(handles);
fig2的OpeningFcn函数中加上:
handles.h=varargin{1};
fig2按钮的回调函数:
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.text1,'string',get(handles.h.edit1,'string'));