Две фигуры в двух разных файлах - как запустить первый фига из второго? - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть два инжира в двух разных файлах. Нажав кнопку на первом рисунке, я хочу показать второй ... как это сделать? это возможно?

Если ДА, как обмениваться данными между двумя цифрами?

1 Ответ

5 голосов
/ 06 декабря 2010

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

...