2014-01-19 30 views
1

請,我已經創建了這個示例GUI。我希望能夠從包含相同信息的舊版本中打開一個新的GUI,就像MSWord中的子菜單'新建'始終打開新的MSWord文檔一樣。我不知道我的努力是否真的是答案,因爲它打開了一個新的數字,但對於一個大的代碼,我會一直複製和粘貼?請問有沒有更好的方法來做到這一點?謝謝。從現有的GUI Matlab打開新圖窗口

function []=workmenu() 
f=figure('MenuBar','None'); 
mh=uimenu(f,'Label','File'); 
mh1=uimenu(f,'Label','Edit'); 

mh_chd1=uimenu(mh,'Label','New'); %Submenu of mh 
set(mh_chd1,'callback',{@newopen}); %Callback for mh_chd1 

%Create pop up menu 
pp=uicontrol(f,'Style','popupmenu','string',{'One';'Two';'Three'},... 
'pos',[30 250 130 20]); 

function []=newopen(varargin) 
f=figure('MenuBar','None'); 
mh=uimenu(f,'Label','File'); 
mh1=uimenu(f,'Label','Edit'); 

mh_chd1=uimenu(mh,'Label','New'); %Submenu of mh 
set(mh_chd1,'callback',{@newopen}); %Callback for mh_chd1 

%Create pop up menu 
pp=uicontrol(f,'Style','popupmenu','string',{'One';'Two';'Three'},... 
'pos',[30 250 130 20]); 
end 

end 
+0

我認爲你應該改進你的問題。對於一個工作代碼總是很好。但我認爲你沒有解決基本問題 - 你將如何在兩個不同的窗口中管理數據和功能?對於這個方面,你會真正受益於面向對象的編程。另外恕我直言,Matlab是GUI應用程序的不錯選擇 - 它使得應用程序響應不佳(主要是因爲它是單線程的)。 – bdecaf

+0

感謝您的回覆,但我很困惑。爲什麼恕我直言對於gui應用程序來說是不好的選擇? – user2868118

+0

個人是關於這個單線程的事情。您無需對應用程序進行反饋或控制,直到它將控制權交還給用戶。一旦你有幾個線程,這很容易做到。 – bdecaf

回答

0

好的,這是我發現的。它仍然打開一個新的數字好吧。

function []=workmenu() 
f=figure('MenuBar','None'); 
mh=uimenu(f,'Label','File'); 
mh1=uimenu(f,'Label','Edit'); 

mh_chd1=uimenu(mh,'Label','New'); %Submenu of mh 
set(mh_chd1,'callback',{@newopen}); %Callback for mh_chd1 

%Create pop up menu 
pp=uicontrol(f,'Style','popupmenu','string',{'One';'Two';'Three'},... 
'pos',[30 250 130 20]); 

function []=newopen(varargin) 
    workmenu 
end 

end