2014-01-19 6 views
1

Пожалуйста, я создал этот образец графического интерфейса. Я хочу, чтобы открыть новый графический интерфейс из старого, который содержит ту же информацию, что и в MSWord, где подменю «Новый» всегда открывает новый документ MSWord. Я не знаю, действительно ли мое усилие - это ответ, потому что он открывает новую фигуру, но для большого кода я всегда буду копировать и вставлять? Пожалуйста, лучший способ сделать это? Спасибо.Открыть новое окно рисунка из существующего графического интерфейса 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

Я думаю, вы должны уточнить свой вопрос. Для одного рабочего кода всегда хорошо. Но я думаю, что вы не решали основные проблемы - как вы будете управлять данными и функциями в двух разных окнах? Для этого аспекта вам бы очень хотелось перейти к объектно-ориентированному программированию. Также IMHO Matlab - плохой выбор для приложений с графическим интерфейсом - он работает с плохо реагирующими приложениями (в основном потому, что он однопоточный). – bdecaf

+0

Спасибо за ваш ответ, но я в замешательстве. Почему IMHO - плохой выбор для приложений 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 
Смежные вопросы