2012-04-07 14 views
2

との関係私はmasirをnamesd 2つのGUIを持っており、
SetOutのGUIをSetOutがmasirのためのサブGUIである(masir上のボタンを押すとSetOutが開きます) 私はこれらを持っていますコードの2行:メインGUIのサブGUIの

masirGUIhandle = masir; 
masirGUIdata = guidata(masirGUIhandle); 

が、私はSetOutに働くように、これらの2行はmasirの開放機能を実行する実行している(opening関数では、私は私の変数のためのいくつかの初期値を設定しているし、今私はそれらをしたくありません初期値、私は自分の変数の値を変更する必要がある)masir GUIのOpeningFcnを実行させたくないので、SetOutのmasirデータにアクセスする必要があるだけです。 何c私は問題を解決するために行うのですか?

私はこの回答を手伝ってくれますか?

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 

コードのabouteどの行がMainGUIで書かれるべきとどの行がSubGUIで書かれるべきで詳しく教えてください?
CloseReqFcnによってレスポンダーが何を意味するのか教えてください。

+0

この例を拡張できますか?あなたの問題が本当に明確ではありません。 – bdecaf

+0

私の質問はこの質問とまったく同じです:[リンク](http://www.mathworks.fr/matlabcentral/answers/338-how-to-pass-data-from-one-gui-to-another)提案された答えがうまくいかないので、私はもっと助けが必要です – sepideh

答えて

2

私は問題をどのように見ているかを要約しましょう。

SetOutからデータを読んでそれを作成したいのですか?これは、ウィンドウが作成されたときにデータが作成されるため、これは不可能です。

素晴らしく、体系的な方法は、あなたの周りには、多かれ少なかれ、私の答えhereから例をコピーすることができます(Model-View Controller Patternを参照)、それはオブジェクト指向やってます(イベントのために例 - オブザーバー)


しかし、あなたが」

  • あなたはウィンドウでは、set(theGUIhandle,'Visible','off')

  • で目に見えない、それを設定することができます表示したくない場合は:私もいくつかのアイデアを持っているあなたのコードに固執したいとdは
  • ウィンドウが閉じられていないものの、あなたがgetappdata(theGUIhandle)

  • でデータを取得することができますが、データが必要な場合後のウィンドウは、ウィンドウの外にそれを保存する機能を持っている必要が閉じられています。