2 つの異なるファイルに 2 つのイチジクがあります。最初の図のボタンをクリックすると、2 番目の図を表示したいのですが、どうすればよいですか? 出来ますか?
はいの場合、2 つの図の間でデータを交換する方法は?
2 つの異なるファイルに 2 つのイチジクがあります。最初の図のボタンをクリックすると、2 番目の図を表示したいのですが、どうすればよいですか? 出来ますか?
はいの場合、2 つの図の間でデータを交換する方法は?
GUI 間でデータを共有するには、いくつかの方法があります。一般に、特定のオブジェクト プロパティを取得/設定できるように、1 つの GUI のグラフィックス ハンドルを他の GUI で使用できるようにする必要があります。以下は、ある GUI が別の GUI を作成し、それにオブジェクト ハンドルを渡すという非常に単純な例です。
function gui_one
hFigure = figure('Pos',[200 200 120 70],... %# Make a new figure
'MenuBar','none');
hEdit = uicontrol('Style','edit',... %# Make an editable text box
'Parent',hFigure,...
'Pos',[10 45 100 15]);
hButton = uicontrol('Style','push',... %# Make a push button
'Parent',hFigure,...
'Pos',[10 10 100 25],...
'String','Open new figure',...
'Callback',@open_gui_two);
%#---Nested functions below---
function open_gui_two(hObject,eventData)
gui_two(hEdit); %# Pass handle of editable text box to gui_two
end
end
%#---Subfunctions below---
function gui_two(hEdit)
displayStr = get(hEdit,'String'); %# Get the editable text from gui_one
set(hEdit,'String',''); %# Clear the editable text from gui_one
hFigure = figure('Pos',[400 200 120 70],... %# Make a new figure
'MenuBar','none');
hText = uicontrol('Style','text',... %# Make a static text box
'Parent',hFigure,...
'Pos',[10 27 100 15],...
'String',displayStr);
end
上記のコードを m ファイルに保存した後、次のように入力して最初の GUI を作成できますgui_one
。編集可能なテキスト ボックスとボタンを備えた小さな Figure ウィンドウが表示されます。テキスト ボックスに何かを入力してボタンを押すと、その横に 2 つ目の GUI が表示されます。この 2 番目の GUI は、最初の GUI から渡された編集可能なテキスト ボックスのハンドルを使用して、テキスト文字列を取得して表示し、最初の GUI から文字列をクリアします。
これは簡単な例です。MATLAB での GUI のプログラミングの詳細については、MathWorks のオンライン ドキュメントと、この SO の質問への回答のリンクを参照してください。