Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crear aplicaciones multiventana en App Designer

Una aplicación multiventana consta de dos o más aplicaciones que comparten datos. La forma de compartir datos entre las aplicaciones depende del diseño. Un diseño común implica dos aplicaciones: una aplicación principal y un cuadro de diálogo. Normalmente, la aplicación principal tiene un botón que abre el cuadro de diálogo. Cuando el usuario cierra el cuadro de diálogo, el cuadro de diálogo envía las selecciones del usuario a la ventana principal, que realiza cálculos y actualiza la IU.

Estas aplicaciones comparten información de diferentes maneras en diferentes momentos:

  • Cuando se abre el cuadro de diálogo, la aplicación principal pasa información al cuadro de diálogo mediante una llamada a la aplicación de cuadro de diálogo con argumentos de entrada.

  • Cuando el usuario hace clic en el botón en el cuadro de diálogo, el cuadro de diálogo devuelve información a la aplicación principal mediante una llamada a una función pública en la aplicación principal con argumentos de entrada.OK

Descripción general del proceso

Para crear la aplicación descrita en la sección anterior, debe crear dos aplicaciones independientes (una aplicación principal y una aplicación de cuadro de diálogo). A continuación, realice estas tareas de alto nivel. Cada tarea implica varios pasos.

  • : Escriba una devolución de llamada en la aplicación de cuadro de diálogo que acepte argumentos de entrada.Enviar información al cuadro de diálogoStartupFcn Uno de los argumentos de entrada debe ser el objeto de aplicación principal. A continuación, en la aplicación principal, llame a la aplicación de cuadro de diálogo con los argumentos de entrada.

  • : Escriba una función pública en la aplicación principal que actualice la interfaz de usuario en función de las selecciones de los usuarios en el cuadro de diálogo.Devuelve información a la aplicación principal Dado que es una función pública, el cuadro de diálogo puede llamarlo y pasar valores a él.

  • — Escribir devoluciones de llamada en ambas aplicaciones que realizan tareas de mantenimiento cuando se cierran las ventanas.Administrar Windows cuando cierranCloseRequest

Para ver una implementación de todos los pasos de este proceso, consulte.Aplicación de trazado que abre un cuadro de diálogo

Enviar información al cuadro de diálogo

Realice estos pasos para pasar valores de la aplicación principal a la aplicación de cuadro de diálogo.

  1. En la aplicación de cuadro de diálogo, defina los argumentos de entrada para la devolución de llamada y, a continuación, agregue código a la devolución de llamada.StartupFcn Abra la aplicación del cuadro de diálogo.Code View En la pestaña, haga clic enEditorApp Input Arguments . En el cuadro de diálogo, escriba una lista separada por comas de nombres de variables para los argumentos de entrada.App Input Arguments Designe una de las entradas como una variable que almacena el objeto de aplicación principal. Luego haga clic.OK

    Agregue código a la devolución de llamada para almacenar el valor de.StartupFcnmainapp

    function StartupFcn(app,mainapp,sz,c)     % Store main app object     app.CallingApp = mainapp;      % Process sz and c inputs     ... end

    Para obtener un ejemplo completamente codificado de una devolución de llamada, consulte.StartupFcnAplicación de trazado que abre un cuadro de diálogo

  2. Llame a la aplicación de cuadro de diálogo desde dentro de una devolución de llamada en la aplicación principal. Abra la aplicación principal y agregue una función de devolución de llamada para el botón.Code ViewOptions Esta devolución de llamada deshabilita el botón para evitar que los usuarios abran varios cuadros de diálogo.Options A continuación, obtiene los valores para pasar al cuadro de diálogo y, a continuación, llama a la aplicación de cuadro de diálogo con argumentos de entrada y un argumento de salida. El argumento de salida es el objeto de aplicación del cuadro de diálogo.

    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

  3. Defina una propiedad en la aplicación principal para almacenar la aplicación del cuadro de diálogo. Manteniendo la aplicación principal abierta, cree una propiedad privada llamada.DialogApp Seleccione Property > Private Property en la pestaña.Editor A continuación, cambie el nombre de la propiedad en el bloque a.propertiesDialogApp

    properties (Access = private)
           DialogApp % Dialog box app
    end

Devuelve información a la aplicación principal

Realice estos pasos para devolver las selecciones del usuario a la aplicación principal.

  1. Crear una función pública en la aplicación principal que actualiza la interfaz de usuario. Abra la aplicación principal y seleccioneCode View Function > Public Function en la pestaña.Editor

    Cambie el nombre de la función predeterminada por el nombre deseado y agregue argumentos de entrada para cada opción que desee pasar del cuadro de diálogo a la aplicación principal. El argumento debe ser primero, así que especifique los argumentos adicionales después de ese argumento.app A continuación, agregue código a la función que procesa las entradas y actualiza la aplicación principal.

    function updateplot(app,sz,c)      % Process sz and c      ... end

    Para obtener un ejemplo completamente codificado de una función pública, consulte.Aplicación de trazado que abre un cuadro de diálogo

  2. Crear una propiedad en la aplicación de cuadro de diálogo para almacenar la aplicación principal. Abra la aplicación del cuadro de diálogo y cree una propiedad privada llamada.Code ViewCallingApp Seleccione Property > Private Property en la pestaña.Editor A continuación, cambie el nombre de propiedad en el bloque a.propertiesCallingApp

    properties (Access = private)
            CallingApp % Main app object
    end

  3. Llame a la función Public desde dentro de una devolución de llamada en la aplicación del cuadro de diálogo. Manteniendo abierta la aplicación del cuadro de diálogo, agregue una función de devolución de llamada para el botón.OK

    En esta devolución de llamada, pase la propiedad y las selecciones del usuario a la función pública.CallingApp A continuación, llame a la función para cerrar el cuadro de diálogo.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

Administrar Windows cuando cierran

Ambas aplicaciones deben realizar ciertas tareas cuando el usuario las cierra. Antes de que se cierre el cuadro de diálogo, debe volver a habilitar el botón en la aplicación principal.Options Antes de que se cierre la aplicación principal, debe asegurarse de que la aplicación del cuadro de diálogo también se cierra.

  1. Abra la aplicación del cuadro de diálogo, haga clic con el botón derecho en el objeto en el y seleccioneCode Viewapp.UIFigureComponent Browser Callbacks > Add CloseRequestFcn callback. A continuación, agregue el código que vuelve a habilitar el botón en la aplicación principal y cierra la aplicación del cuadro de diálogo.

    function DialogAppCloseRequest(app,event)    % Enable the Plot Options button in main app    app.CallingApp.OptionsButton.Enable = 'on';                 % Delete the dialog box     delete(app)              end

  2. Abra la aplicación principal en, haga clic con el botón derecho en el objeto en el y seleccioneCode Viewapp.UIFigureComponent Browser Callbacks > Add CloseRequestFcn callback. A continuación, agregue código que elimine ambas aplicaciones.

    function MainAppCloseRequest(app,event)    % Delete both apps    delete(app.DialogApp)    delete(app)               end

Ejemplo: trazar aplicación que abre un cuadro de diálogo

Esta aplicación consta de una aplicación de trazado principal que tiene un botón para seleccionar opciones en un cuadro de diálogo. El botón llama a la aplicación de cuadro de diálogo con argumentos de entrada.Options En el cuadro de diálogo, la devolución de llamada del botón envía las selecciones del usuario de vuelta a la aplicación principal mediante una llamada a una función pública en la aplicación principal.OK

Temas relacionados