Приложение мультиокна состоит из двух или больше приложений, которые осуществляют обмен данными. Способ, которым вы осуществляете обмен данными между приложениями, зависит от проекта. Один общий умысел включает два приложения: главное приложение и диалоговое окно. Как правило, главное приложение имеет кнопку, которая открывает диалоговое окно. Когда пользователь закрывает диалоговое окно, диалоговое окно отправляет выборы пользователя в главное окно, которое выполняет вычисления и обновляет пользовательский интерфейс.
Эти приложения делятся информацией по-разному в разное время:
Когда диалоговое окно открывается, главное приложение передает информацию диалоговому окну путем вызова приложения диалогового окна с входными параметрами.
Когда пользователь нажимает кнопку OK в диалоговом окне, диалоговое окно возвращает информацию в главное приложение вызовом функции с открытым доступом в главном приложении с входными параметрами.
Создавать приложение описало в предыдущем разделе, необходимо создать два отдельных приложения (главное приложение и приложение диалогового окна). Затем выполните эти высокоуровневые задачи. Каждая задача включает несколько шагов.
Отправьте информация к диалоговому окну — пишут startupFcn
коллбэк в приложении диалогового окна, которое принимает входные параметры. Один из входных параметров должен быть объектом главного приложения. Затем в главном приложении вызовите приложение диалогового окна с входными параметрами.
Возвратитесь информация к Главному приложению — Пишут публичную функцию в главном приложении, которое обновляет пользовательский интерфейс на основе выборов пользователя в диалоговом окне. Поскольку это - публичная функция, диалоговое окно может вызвать его и передать значения ему.
Справьтесь Windows When They Close — пишут CloseRequest
коллбэки в обоих приложениях, которые выполняют задачи обслуживания, когда окна закрываются.
Чтобы видеть реализацию всех шагов в этом процессе, см. Приложение Графического вывода, Которое Открывает Диалоговое окно.
Если вы планируете развернуться, ваше приложение как веб-приложение (требует MATLAB® Compiler™), создание нескольких окон приложения не поддерживается. Вместо этого рассмотрите создавание приложения одно окна с несколькими вкладками. Для получения дополнительной информации смотрите Ограничения Веб-приложения и Неподдерживаемую функциональность (MATLAB Compiler).
Выполните эти шаги, чтобы передать значения от главного приложения до приложения диалогового окна.
В приложении диалогового окна задайте входные параметры для startupFcn
коллбэк, и затем добавляет код в коллбэк. Откройте приложение диалогового окна в Code View. Во вкладке Editor нажмите App Input Arguments
. В диалоговом окне App Input Arguments введите список, разделенный запятыми имен переменных для ваших входных параметров. Определяйте одни из входных параметров как переменная, которая хранит объект главного приложения. Затем нажмите OK.
Добавьте код в startupFcn
коллбэк, чтобы сохранить значение mainapp
.
function startupFcn(app,mainapp,sz,c) % Store main app object app.CallingApp = mainapp; % Process sz and c inputs ... end
Для полностью закодированного примера startupFcn
коллбэк, см. Приложение Графического вывода, Которое Открывает Диалоговое окно.
Вызовите приложение диалогового окна из коллбэка в главном приложении. Откройте главное приложение в Code View и добавьте функцию обратного вызова для кнопки Options. Этот коллбэк отключает кнопку Options, чтобы препятствовать тому, чтобы пользователи открыли несколько диалоговых окон. Затем это заставляет значения передавать диалоговому окну, и затем это вызывает приложение диалогового окна с входными параметрами и выходным аргументом. Выходным аргументом является объект приложения диалогового окна.
function OptionsButtonPushed(app,event) % Disable Plot Options button while dialog is open app.OptionsButton.Enable = 'off'; % Get szvalue and cvalue % .... % Call dialog box with input values app.DialogApp = DialogAppExample(app,szvalue,cvalue); end
Задайте свойство в главном приложении, чтобы сохранить приложение диалогового окна. При хранении главного приложения открытым, создайте частную собственность под названием DialogApp
. Выберите Property> Private Property во вкладке Editor. Затем измените имя свойства в properties
блокируйтесь к DialogApp
.
properties (Access = private) DialogApp % Dialog box app end
Выполните эти шаги, чтобы возвратить выборы пользователя в главное приложение.
Создайте публичную функцию в главном приложении, которое обновляет пользовательский интерфейс. Откройте главное приложение в Code View и выберите Function> Public Function во вкладке Editor.
Поменяйте имя функции по умолчанию на желаемое имя и добавьте входные параметры для каждой опции, которую вы хотите передать от диалогового окна до главного приложения. app
аргумент должен быть первым, поэтому задать дополнительные аргументы после того аргумента. Затем добавьте код в функцию, которая обрабатывает входные параметры и обновляет главное приложение.
function updateplot(app,sz,c) % Process sz and c ... end
Для полностью закодированного примера публичной функции см. Приложение Графического вывода, Которое Открывает Диалоговое окно.
Создайте свойство в приложении диалогового окна, чтобы сохранить главное приложение. Откройте приложение диалогового окна в Code View и создайте частную собственность под названием CallingApp
. Выберите Property> Private Property во вкладке Editor. Затем измените имя свойства в properties
блокируйтесь к CallingApp
.
properties (Access = private) CallingApp % Main app object end
Вызовите публичную функцию из коллбэка в приложении диалогового окна. При хранении приложения диалогового окна открытым, добавьте функцию обратного вызова для кнопки OK.
В этом коллбэке передайте CallingApp
свойство и выборы пользователя к публичной функции. Затем вызовите delete
функционируйте, чтобы закрыть диалоговое окно.
function ButtonPushed(app,event) % Call main app's public function updateplot(app.CallingApp,app.EditField.Value,app.DropDown.Value); % Delete the dialog box delete(app) end
Оба приложения должны выполнить определенные задачи, когда пользователь закрывает их. Перед завершениями диалогового окна это должно повторно включить кнопку Options в главном приложении. Перед завершениями главного приложения это должно гарантировать, что приложение диалогового окна также закрывается.
Откройте приложение диалогового окна в Code View, щелкните правой кнопкой по app.UIFigure
объект в Component Browser, и выбирает Callbacks> Add CloseRequestFcn callback. Затем добавьте код, который повторно включает кнопку в главном приложении и закрывает приложение диалогового окна.
function DialogAppCloseRequest(app,event) % Enable the Plot Options button in main app app.CallingApp.OptionsButton.Enable = 'on'; % Delete the dialog box delete(app) end
Откройте главное приложение в Code View, щелкните правой кнопкой по app.UIFigure
объект в Component Browser, и выбирает Callbacks> Add CloseRequestFcn callback. Затем добавьте код, который удаляет оба приложения.
function MainAppCloseRequest(app,event) % Delete both apps delete(app.DialogApp) delete(app) end
Это приложение состоит из основного приложения графического вывода, которое имеет кнопку для выбора опций в диалоговом окне. Кнопка Options вызывает приложение диалогового окна с входными параметрами. В диалоговом окне коллбэк для кнопки OK передает выборы пользователя обратно в главное приложение вызовом функции с открытым доступом в главном приложении.