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
yfindobj
). 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.