Main Content

Evitar el acceso a figuras y ejes

Motivos para evitar el acceso

En algunas situaciones es importante evitar que determinadas figuras y ejes se conviertan en el objetivo de la salida de las gráficas. O sea, evitar que se conviertan en la figura actual, como si la devolviera gcf, o en los ejes actuales, como si los devolviera gca.

Puede que quiera evitar el acceso a una figura que contenga los controles que se implementan en una interfaz de usuario. o puede que quiera evitar el acceso a unos ejes que forman parte de un programa de aplicación al que se accede solo la aplicación.

Cómo evitar el acceso

Evite que las funciones de MATLAB® se segmenten en una determinada figura o ejes eliminando sus identificadores de la lista de identificadores visibles.

Dos propiedades son las que controlan la visibilidad de los identificadores: HandleVisibility y ShowHiddenHandles.

HandleVisibility es una propiedad de todos los objetos de gráficas. Controla la visibilidad del identificador del objeto en tres posibles valores:

  • 'on': puede obtener el identificador del objeto con funciones que devuelvan identificadores, como (gcf, gca, gco, get y findobj). Se trata del comportamiento predeterminado.

  • 'callback': el identificador del objeto solo es visible en el espacio de trabajo de la función callback.

  • 'off': el identificador está oculto de todas las funciones que se ejecutan en la ventana del comando y en las funciones callback.

Propiedades afectadas por la visibilidad del identificador

Cuando la HandleVisibility de un objeto se establece en 'callback' u 'off':

  • El identificador del objeto no aparece en su propiedad Children del elemento principal.

  • Las figuras no aparecen en la propiedad CurrentFigure de la raíz.

  • Los ejes no aparecen en la propiedad CurrentAxes que contiene la figura.

  • Los objetos de gráficas no aparecen en la propiedad CurrentObject de la figura.

Funciones afectadas por la visibilidad del identificador

Cuando un identificador no es visible en su lista de elementos principales de elementos secundarios, las funciones que obtienen los identificadores al buscar la jerarquía del objeto, no devuelven el identificador. Estas funciones incluyen get, findobj, gca, gcf, gco, newplot, cla, clf y close.

Valores devueltos por gca y gcf

Cuando un figura con identificador oculto se encuentra en la parte más alta de la pantalla, pero tiene figuras con identificador visible apiladas detrás, gcf devuelve la figura con identificador visible de la parte más alta en la pila. Este mismo comportamiento es válido para gca. Si no existen ejes o figuras con identificador visible, llamar a gcf o gca crea uno.

Acceder a objetos con identificador oculto

La propiedad ShowHiddenHandles de la raíz activa y desactiva el control de visibilidad de los identificadores. ShowHiddenHandles está en 'off' de forma predeterminada, lo que significa que MATLAB se adapta a la configuración de la propiedad HandleVisibility de todos los objetos.

Establecer ShowHiddenHandles en on es igual a establecer la propiedad HandleVisibility de todos los objetos en la jerarquía de gráficas en on.

Nota

Los objetos de texto del título de los ejes y de la etiqueta de los ejes no son elementos secundarios de los ejes. Para acceder a los identificadores de estos objetos, utilice las propiedades Title, XLabel, YLabel y ZLabel de los ejes.

La función close también permite acceder a las figuras con identificador oculto mediante la opción hidden. Por ejemplo:

close('hidden') 

cierra la figura de la parte superior de la pantalla, incluso si su identificador está oculto.

La combinación de las opciones all y hidden:

close('all','hidden')

cierra todas las figuras.

Validez de los identificadores frente a visibilidad de los identificadores

Todos los identificadores siguen siendo válidos independientemente del estado de su propiedad HandleVisibility. Si tiene asignado un identificador de objeto a una variable, siempre puede configurar y obtener sus propiedades mediante dicha variable del identificador.