私は masir と SetOut という名前の 2 つの GUI を持っています
SetOut GUI は masir のサブ GUI です (masir のボタンを押すと SetOut が開きます)
masirGUIhandle = masir;
masirGUIdata = guidata(masirGUIhandle);
しかし、これらの 2 行を実行すると、SetOut で作業しているときに masir の開始関数が実行されます (開始関数では、変数の初期値を設定しましたが、これらの初期値は必要ありません。変数の値を変更する必要があります)。 masir GUI の OpeningFcn を実行したくありません。SetOut で masir データにアクセスする必要があるだけです。問題を解決するにはどうすればよいですか?
この答えについて私を助けて、もっと説明してくれる人はいますか?
I use this easy way for data sharing between GUIs
%In the end of OpeningFcn of Main GUI
setappdata(0,'HandleMainGUI',hObject);
%When you want to edit shared data you must get the handle
HandleMainGUI=getappdata(0,'HandleMainGUI');
%write a local variable called MyData to SharedData, any type of data
setappdata(HandleMainGUI,'SharedData',MyData);
%get SharedData and save it to a local variable called SomeDataShared
SomeDataShared=getappdata(HandleMainGUI,'SharedData');
Don't forget to clean up the data shared in the CloseReqFcn of you main GUI
HandleMainGUI=getappdata(0,'HandleMainGUI');
rmappdata(HandleMainGUI,'MySharedData') %do rmappdata for all data shared
Remember that your GUIs might try to getappdata that doesn't exist, you should first test if it does exist
if (isappdata(0,'HandleMainGUI') & isappdata(HandleMainGUI,'MySharedData'))
%get, set or rm appdata
else
%do something else, maybe loading default values into those variables
end
MainGUI で記述すべきコード行と、SubGUI で記述すべきコード行について詳しく教えてください。
レスポンサが CloseReqFcn で何を意味するのか教えてください。