Существует несколько способов обмена данными между графическими интерфейсами .В общем, вам нужно как-то сделать графический дескриптор (ы) из одного графического интерфейса пользователя доступным для другого графического интерфейса, чтобы он мог получить / установить определенные свойства объекта.Вот очень простой пример, в котором один 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
.Вы увидите маленькое окно с редактируемым текстовым полем и кнопкой.Если вы введете что-то в текстовое поле, а затем нажмете кнопку, рядом с ним появится второй графический интерфейс.Этот второй графический интерфейс использует дескриптор редактируемого текстового поля, которое передается ему из первого графического интерфейса для получения текстовой строки, ее отображения и очистки строки из первого графического интерфейса.
Это простой пример,Для получения дополнительной информации о программировании графических интерфейсов в MATLAB, посмотрите онлайн-документацию MathWorks , а также ссылки в ответах на этот вопрос SO .