Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Crear menús para aplicaciones programáticas

Agregar menús de barra de menús

Utilice la función para agregar un menú de la barra de menús a la interfaz de usuario.uimenu Una sintaxis para esuimenu

mh = uimenu(parent,'PropertyName',PropertyValue,...)

Donde está el identificador del menú o elemento de menú resultante.mh Consulte la página de referencia para ver otras sintaxis válidas.uimenu

Estos temas discuten el uso de los menús de la barra de menú estándar y describen las propiedades de menú utilizadas habitualmente y ofrecen algunos ejemplos sencillos.MATLAB®

Mostrar menús de barra de menús estándar

Visualizar los menús de la barra de menús estándar es opcional. La barra de menú de esta figura contiene los menús estándar.

Si utiliza los menús de la barra de menú estándar, los menús que cree se añadirán a él. Si opta por no mostrar los menús de la barra de menú estándar, la barra de menús solo contiene los menús que cree. Si no visualiza ningún menú estándar y no crea ningún menú, la propia barra de menús no se visualiza.

Utilice la propiedad figure para mostrar u ocultar la barra de menús estándar mostrada en la figura anterior.MenuBarMATLAB Se establece en (el valor predeterminado) para mostrar los menús estándar.MenuBarfigure Se establece en para ocultarlos.MenuBarnone

fh.MenuBar = 'figure';  % Display standard menu bar menus. fh.MenuBar = 'none';    % Hide standard menu bar menus.

En estas instrucciones, es el identificador de la figura.fh

Cómo afectan los menús el acoplamiento de figura

Al personalizar la barra de menús o la barra de herramientas, puede controlar la presentación de los controles de acoplamiento de la ventana estableciendo la propiedad.DockControls Es posible que no necesites menús para tu aplicación, pero si quieres que el usuario pueda acoplar o desacoplar la ventana, debe contener una barra de menús o una barra de herramientas. Esto se debe a que el acoplamiento se controla mediante el icono de acoplamiento, una pequeña flecha curvada cerca de la esquina superior derecha de la barra de menús o la barra de herramientas, como se muestra en la siguiente ilustración.

Las ventanas de figura con una barra de menús estándar también tienen un menú desde el que el usuario puede acoplarse y desacoplarlos.Desktop

Para mostrar la flecha de acoplamiento y el Desktop > Dock Figure elemento de menú, la propiedad de la figura debe establecerse en.DockControls'on' Puede establecer esta propiedad en el inspector de propiedades. Además, las propiedades de la figura deben establecerse para que muestren los controles de acoplamiento.MenuBarToolBar'on'

La propiedad de la figura también afecta al comportamiento de acoplamiento.WindowStyle El valor predeterminado es, pero si se cambia a, a continuación, se aplica lo siguiente:'normal''docked'

  • La interfaz de usuario se abre anclada en el escritorio al ejecutar la aplicación.

  • La propiedad se establece en y no se puede desactivar hasta que ya no se establece en.DockControls'on'WindowStyle'docked'

  • Si desacopla una interfaz de usuario creada con el conjunto, la ventana no tendrá una flecha de acoplamiento a menos que la figura muestre una barra de menús o una barra de herramientas.WindowStyle'docked' Cuando la ventana no tiene ninguna flecha de acoplamiento, los usuarios pueden desacoplarla desde el escritorio, pero no podrán volver a acoplarla.

Para resumir, puede mostrar los controles de acoplamiento con la propiedad siempre y cuando no esté en conflicto con la propiedad de la figura.DockControlsWindowStyle

Nota

Los cuadros de diálogo modales (figuras con la propiedad establecida en) no pueden tener barras de menú, barras de herramientas ni controles de acoplamiento.WindowStyle'modal'

Para obtener más información, consulte las descripciones de propiedades en la página.DockControlsMenuBarToolBarWindowStyleFigure Properties

Menú de la barra de menú

Las siguientes instrucciones crean un menú de la barra de menús con dos elementos de menú.

mh = uimenu(fh,'Text','My menu'); eh1 = uimenu(mh,'Text','Item 1'); eh2 = uimenu(mh,'Text','Item 2','Checked','on');

es el identificador de la figura principal.fh

es el identificador del menú primario.mh

La propiedad especifica el texto que aparece en el menú.Text

La propiedad especifica que este elemento se muestra con una marca junto a él cuando se crea el menú.Checked

Si la interfaz de usuario muestra la barra de menús estándar, se agregará el nuevo menú.

Si la interfaz de usuario no muestra la barra de menús estándar, crea una barra de menús si no existe ninguna y, a continuación, agrega el menú a ella.MATLAB

Este comando agrega una línea separadora que precede al segundo elemento de menú.

eh2.Separator = 'on';

Las siguientes instrucciones agregan dos subelementos de menú, asignan a cada subelemento un acelerador de teclado y deshabilitan el primer subelemento.Item 1

seh1 = uimenu(eh1,'Text','Choice 1','Accelerator','C',...               'Enable','off'); seh2 = uimenu(eh1,'Text','Choice 2','Accelerator','H');

La propiedad agrega aceleradores de teclado a los elementos de menú.Accelerator Algunos aceleradores pueden ser utilizados para otros fines en su sistema y otras acciones pueden resultar.

La propiedad deshabilita el primer subelemento para que un usuario no pueda seleccionarlo cuando se crea el menú por primera vez.EnableChoice 1 El elemento aparece atenuado.

Nota

Después de haber creado todos los elementos de menú, establezca sus propiedades ejecutando las siguientes sentencias:HandleVisibilityoff

menuhandles = findall(figurehandle,'type','uimenu'); menuhandles.HandleVisibility = 'off';

Consulte la sección, para obtener información acerca de los elementos de menú de programación.Elemento de menú

Agregar menús contextuales a una aplicación programática

Los menús contextuales aparecen cuando el usuario hace clic con el botón derecho en una figura o un componente de interfaz de usuario. Siga estos pasos para agregar un menú contextual a la interfaz de usuario:

  1. Cree el objeto de menú contextual utilizando la función.uicontextmenu

  2. Añada elementos de menú al menú contextual utilizando la función.uimenu

  3. Asocie el menú contextual con un objeto de gráficos mediante la propiedad del objeto.UIContextMenu

Cree el objeto de menú contextual

Utilice la función para crear un objeto de menú contextual.uicontextmenu La sintaxis es

handle = uicontextmenu('PropertyName',PropertyValue,...)

El elemento primario de un menú contextual debe ser siempre una figura. Utilice la propiedad para especificar el elemento primario de un uicontextmenu.Parent Si no especifica la propiedad, el elemento primario es la figura actual especificada por la propiedad raíz.ParentCurrentFigure

El código siguiente crea una figura y un menú contextual cuyo elemento primario es la figura. En este punto, la figura es visible, pero no el menú.

fh = figure('Position',[300 300 400 225]); cmenu = uicontextmenu('Parent',fh,'Position',[10 215]);

Nota

explica el uso de la propiedad.Forzar visualización del menú contextualPosition

Agregar elementos de menú al menú contextual

Utilice la función para añadir elementos al menú contextual.uimenu Los elementos aparecen en el menú en el orden en el que se agregan. El código siguiente agrega tres elementos al menú contextual creado anteriormente.

mh1 = uimenu(cmenu,'Text','Item 1'); mh2 = uimenu(cmenu,'Text','Item 2'); mh3 = uimenu(cmenu,'Text','Item 3');

Puede especificar cualquier aplicable al definir los elementos de menú contextual.Menu Properties Consulte la página de referencia y para obtener información sobre el uso para crear elementos de menú.uimenuAgregar menús de barra de menúsuimenu Tenga en cuenta que los menús contextuales no tienen una propiedad.Accelerator

Nota

Después de haber creado el menú contextual y todos sus elementos, establezca sus propiedades mediante la ejecución de las siguientes sentencias:HandleVisibility'off'

cmenuhandles = findall(figurehandle,'type','uicontextmenu'); cmenuhandles.HandleVisibility = 'off'; menuitemhandles = findall(cmenuhandles,'type','uimenu'); menuitemhandles.HandleVisibility = 'off';

Asocie el menú contextual con objetos gráficos

Puede asociar un menú contextual con la propia figura y con todos los componentes que tienen una propiedad.UIContextMenu Esto incluye ejes, panel, grupo de botones, todos los controles de interfaz de usuario (uicontrols).

Este código agrega un panel y un eje a la figura. El panel contiene un solo pulsador.

ph = uipanel('Parent',fh,'Units','pixels',...             'Position',[20 40 150 150]); bh1 = uicontrol(ph,'String','Button 1',...             'Position',[20 20 60 40]); ah = axes('Parent',fh,'Units','pixels',...             'Position',[220 40 150 150]);

Este código asocia el menú contextual con la figura y con los ejes estableciendo la propiedad de la figura y los ejes en el identificador del menú contextual.UIContextMenucmenu

fh.UIContextMenu = cmenu;   % Figure ah.UIContextMenu = cmenu;   % Axes

Haga clic con el botón derecho en la figura o en los ejes. El menú contextual aparece con la esquina superior izquierda en la ubicación en la que hizo clic. Haga clic con el botón derecho en el panel o en su pulsador. El menú contextual no aparece.

Forzar visualización del menú contextual

Si establece la propiedad del menú contextual, el menú contextual se muestra en la ubicación especificada por la propiedad, sin que el usuario realice ninguna acción.VisibleonPosition En este ejemplo, la propiedad del menú contextual es [10 215].Position

cmenu.Visible = 'on';

El menú contextual muestra 10 píxeles desde la izquierda de la figura y 215 píxeles desde la parte inferior.

Si establece la propiedad del menú contextual, o si el usuario hace clic fuera del menú contextual, el menú contextual desaparece.Visibleoff

Consulte también

|

Temas relacionados