Приложение мультиокна состоит из двух или больше приложений, которые осуществляют обмен данными. Способ, которым вы осуществляете обмен данными между приложениями, зависит от проекта. Один общий умысел включает два приложения: главное приложение и диалоговое окно. Как правило, главное приложение имеет кнопку, которая открывает диалоговое окно. Когда пользователь закрывает диалоговое окно, диалоговое окно отправляет выборы пользователя в главное окно, которое выполняет вычисления и обновляет пользовательский интерфейс.
Эти приложения делятся информацией по-разному в разное время:
Когда диалоговое окно открывается, главное приложение передает информацию диалоговому окну путем вызова приложения диалогового окна с входными параметрами.
Когда пользователь нажимает кнопку OK в диалоговом окне, диалоговое окно возвращает информацию в главное приложение путем вызывания государственной функции в главном приложении с входными параметрами.
Создавать приложение описало в предыдущем разделе, необходимо создать два отдельных приложения (главное приложение и приложение диалогового окна). Затем выполните эти высокоуровневые задачи. Каждая задача включает несколько шагов.
Отправьте информацию в Диалоговое окно — Запись коллбэк StartupFcn
в приложении диалогового окна, которое принимает входные параметры. Один из входных параметров должен быть объектом главного приложения. Затем в главном приложении вызовите приложение диалогового окна с входными параметрами.
Возвратите информацию в Главное приложение — Запись государственная функция в главном приложении, которое обновляет пользовательский интерфейс на основе выборов пользователя в диалоговом окне. Поскольку это - государственная функция, диалоговое окно может вызвать его и передать значения ему.
Управляйте Windows When They Close — Запись коллбэки CloseRequest
в обоих приложениях, которые выполняют задачи обслуживания, когда окна закрываются.
Чтобы видеть реализацию всех шагов в этом процессе, см. Приложение Графического вывода, Которое Открывает Диалоговое окно.
Выполните эти шаги, чтобы передать значения от главного приложения до приложения диалогового окна.
В приложении диалогового окна задайте входные параметры для коллбэка 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 передает выборы пользователя обратно в главное приложение путем вызывания государственной функции в главном приложении.