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.

Definición de devolución de llamada

Formas de especificar devoluciones de llamada

Para usar las propiedades de devolución de llamada, asigne el código de devolución de llamada a la propiedad. Utilice una de las siguientes técnicas:

  • Un identificador de función que hace referencia a la función que se ejecutará.

  • Una matriz de celdas que contiene un identificador de función y argumentos adicionales

  • Un vector de caracteres que se evalúa como una expresión válida. evalúa el vector de caracteres en el espacio de trabajo base.MATLAB®MATLAB

No se recomienda definir una devolución de llamada como un vector de caracteres. El uso de una función especificada como identificador de función permite proporcionar información importante a la función de devolución de llamada.MATLAB

Para obtener más información, consulte.Sintaxis de función de devolución de llamada

Sintaxis de función de devolución de llamada

Las funciones de devolución de llamada de gráficos deben aceptar al menos dos argumentos de entrada:

  • El identificador del objeto cuya devolución de llamada se está ejecutando. Utilice este identificador dentro de la función de devolución de llamada para hacer referencia al objeto de devolución de llamada.

  • La estructura de datos de eventos, que puede estar vacía para algunas devoluciones de llamada o contener información específica que se describe en la descripción de la propiedad para ese objeto.

Siempre que la devolución de llamada se ejecuta como resultado de la acción de activación específica, llama a la función de devolución de llamada y pasa estos dos argumentos a la función.MATLAB

Por ejemplo, defina una función de devolución de llamada llamada para las líneas creadas por la función.lineCallbackplot Con la función en la ruta de acceso, utilice el operador para asignar el identificador de función a la propiedad de cada línea creada por.lineCallbackMATLAB@ButtonDownFcnplot

plot(x,y,'ButtonDownFcn',@lineCallback) 

Defina la devolución de llamada para aceptar dos argumentos de entrada. Utilice el primer argumento para hacer referencia a la línea específica cuya devolución de llamada se está ejecutando. Utilice este argumento para establecer la propiedad de línea:Color

function lineCallback(src,~)    src.Color = 'red'; end 

El segundo argumento está vacío para la devolución de llamada.ButtonDownFcn El carácter indica que no se utiliza este argumento.~

Pasar argumentos de entrada adicionales

Para definir argumentos de entrada adicionales para la función de devolución de llamada, agregue los argumentos a la definición de función, manteniendo el orden correcto de los argumentos predeterminados y los argumentos adicionales:

function lineCallback(src,evt,arg1,arg2)    src.Color = 'red';    src.LineStyle = arg1;    src.Marker = arg2; end

Asigne una matriz de celdas que contenga el identificador de función y los argumentos adicionales a la propiedad:

plot(x,y,'ButtonDownFcn',{@lineCallback,'--','*'})

Puede usar una función anónima para pasar argumentos adicionales. Por ejemplo:

plot(x,y,'ButtonDownFcn',...     @(src,eventdata)lineCallback(src,eventdata,'--','*'))

Información relacionada

Para obtener información sobre el uso de funciones anónimas, consulte.Funciones anónimas

Para obtener información sobre el uso de métodos de clase como devoluciones de llamada, consulte.Class Methods for Graphics Callbacks

Para obtener información sobre cómo resuelve varias ejecuciones de devolución de llamada, vea las propiedades de los objetos que definen las devoluciones de llamadas.MATLABBusyActionInterruptible

Defina una devolución de llamada como predeterminada

Puede asignar una devolución de llamada a la propiedad de un objeto específico o puede definir una devolución de llamada predeterminada para todos los objetos de ese tipo.

Para definir un para todos los objetos de línea, establezca un valor predeterminado en el nivel raíz.ButtonDownFcn

  • Utilice la función para especificar el nivel raíz de la jerarquía de objetos.groot

  • Defina una función de devolución de llamada que esté en la ruta.MATLAB

  • Asigne un identificador de función que haga referencia a esta función al.defaultLineButtonDownFcn

set(groot,'defaultLineButtonDownFcn',@lineCallback)

El valor predeterminado permanece asignado para la sesión.MATLAB Puede realizar la asignación de valor predeterminada en el archivo.startup.m