2016-08-31 9 views
1

GUI_mainというGUIがあり、その中にpushbutton_GUI_mainというプッシュボタンがあります。GUIプッシュボタンを作成する方法

GUI_subはあなたが pushbutton_GUI_mainをクリックしたときに開く別のGUIである
function pushbutton_GUI_main_Callback(hObject, eventdata, handles) 

GUI_sub 

:私は現在、次のコールバック関数実装を持っています。

function pushbutton_GUI_main_Callback(hObject, eventdata, handles) 

if (GUI_sub == open) 
    close(GUI_sub) 
else 
    GUI_sub 

で、私はを開くことができるようにしたいと近いGUI_subpushbutton_GUI_mainで:しかし、私は次のような何かをしたいです。

+0

をチェックアウトすることができ

findall(0,'Type','figure','Name','GUI_sub') 

を追加することによりさらに絞り込むことができ '自体にハンドルを返しGUI_sub'していますか?もしそうなら、GUI_mainハンドルにそのハンドルを格納し、その状態を確認することができます。私は正確なことをしていないので、正確な実装を手助けすることはできません – Trogdor

答えて

1

excazaと言うと、ハンドルは、GUIでデータや情報を渡すのに最適です。 何らかの理由でGUIハンドルを保存したくない場合は、おそらくGUI_subを独立して作成できるかどうかは、Figureハンドルを検索することです。

subGuiH = findall(0,'Name','GUI_sub'); 
if ~isempty(subGuiH) 
    close(subGuiH); 
end 
GUI_sub; 

検索では、あなたのMatlabのバージョンに応じて、あなたはまた、グルート

2

サブGUIを参照するには、オブジェクトハンドルが必要です。 GUI_subがGUIDEで構築されたGUIであると仮定すると、デフォルトではオプションのハンドル出力がプログラムされています。 GUIDE GUIのための

素朴な実装は次のようになります。MATLABのグラフィックスオブジェクトは、デフォルトでUserDataフィールドを持っている(?多分すべて)の

function pushbutton1_Callback(hObject, eventdata, handles) 
if ~isempty(handles.figure1.UserData) 
    close(handles.figure1.UserData); 
    handles.figure1.UserData = []; 
else 
    handles.figure1.UserData = sub_GUI; 
end 

ほとんど。この簡単な例では、基本図形オブジェクトのUserDataを使用しました。このデータを保存/転送する他の方法については、Share Data Among Callbacksも参照してください。

関連する問題