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.
Los componentes de interfaz de usuario y gráficos tienen ciertas propiedades que puede asociar con funciones de devolución de llamada específicas. Cada una de estas propiedades corresponde a una acción de usuario específica. Por ejemplo, un uicontrol tiene una propiedad llamada.Callback
Puede establecer el valor de esta propiedad para que sea un identificador de una función de devolución de llamada, una función anónima o un vector de caracteres que contenga una expresión.MATLAB® Establecer esta propiedad hace que la aplicación responda cuando el usuario interactúa con el uicontrol. Si la propiedad no tiene ningún valor especificado, no sucede nada cuando el usuario interactúa con el uicontrol.Callback
Esta tabla enumera las propiedades de devolución de llamada que están disponibles, las acciones del usuario que desencadenan la función de devolución de llamada y los componentes de interfaz de usuario y gráficos más comunes que los usan.
Propiedad callback | Acción del usuario | Componentes que utilizan esta propiedad |
---|---|---|
ButtonDownFcn | El usuario final presiona un botón del ratón mientras el puntero está en el componente o la figura. | |
Callback | El usuario final desencadena el componente. Por ejemplo: seleccionar un elemento de menú, mover un deslizador o presionar un botón pulsador. | |
CellEditCallback | El usuario final edita un valor en una tabla cuyas celdas son editables. | |
CellSelectionCallback | El usuario final selecciona las celdas de una tabla. | |
ClickedCallback | El usuario final hace clic en la herramienta de empuje o palanca con el botón izquierdo del ratón. | |
CloseRequestFcn | La cifra se cierra. | |
CreateFcn | Callback se ejecuta al crear el objeto, pero antes de que se muestre.MATLAB | , , , , , , , , , , |
DeleteFcn | Callback se ejecuta justo antes de borrar la figura.MATLAB | , , , , , , , , , , |
KeyPressFcn | El usuario final presiona una tecla de teclado mientras el puntero está en el objeto. | |
| El usuario final libera una tecla de teclado mientras el puntero está en el objeto. | |
OffCallback | Se ejecuta cuando cambia el de una herramienta de alternancia. | |
OnCallback | Se ejecuta cuando cambia el de una herramienta de alternancia. | |
| El usuario final cambia el tamaño de un grupo de botones, figura o panel cuya propiedad es. | |
SelectionChangedFcn | El usuario final selecciona un botón de opción o botón de alternancia diferente dentro de un grupo de botones. | |
WindowButtonDownFcn | El usuario final presiona un botón del ratón mientras el puntero está en la ventana de la figura. | |
WindowButtonMotionFcn | El usuario final mueve el puntero dentro de la ventana de la figura. | |
WindowButtonUpFcn | El usuario final suelta un botón del ratón. | |
WindowKeyPressFcn | El usuario final presiona una tecla mientras el puntero está en la figura o en cualquiera de sus objetos secundarios. | |
WindowKeyReleaseFcn | El usuario final libera una clave mientras el puntero está en la figura o en cualquiera de sus objetos secundarios. | |
| El usuario final gira la rueda del ratón mientras el puntero está en la figura. |
Para asociar una función de devolución de llamada con un componente de interfaz de usuario, establezca el valor de una de las propiedades de devolución de llamada del componente para que sea una referencia a la función de devolución de llamada. Normalmente, esto se hace cuando se define el componente, pero se pueden cambiar los valores de propiedad de devolución de llamada en cualquier parte del código.
Especifique el valor de la propiedad de devolución de llamada de una de las siguientes maneras:
.Especifique una matriz de celdas Esta matriz de celdas contiene un identificador de función como primer elemento, seguido de y los argumentos de entrada que desea usar en la función.
Especificar un vector de caracteres que contenga comandos (no recomendado)MATLAB
Los identificadores de función proporcionan una manera de representar una función como una variable. La función debe ser una función local o anidada en el mismo archivo que el código de la aplicación, o puede escribirla en un archivo independiente que se encuentra en la ruta de acceso.MATLAB
Para crear el identificador de función, especifique el operador antes del nombre de la función.@
Por ejemplo, este comando especifica la propiedad para que sea un identificador para la función:uicontrol
Callback
pushbutton_callback
b = uicontrol('Style','pushbutton','Callback',@pushbutton_callback);
Esta es la definición de función para: tenga en cuenta que el identificador de función no hace referencia explícita a los argumentos de entrada, pero la declaración de función incluye dos argumentos de entrada.pushbutton_callback
function pushbutton_callback(src,event) display('Button pressed'); end
Nombre de propiedad de devolución de llamada | Componente |
---|---|
WindowKeyPressFcn WindowKeyReleaseFcn WindowScrollWheel | figure |
KeyPressFcn | , ,figure uicontrol uitable |
KeyReleaseFcn | , ,figure uicontrol uitable |
SelectionChangedFcn | uibuttongroup |
CellEditCallback CellSelectionCallback | uitable |
Una ventaja de especificar devoluciones de llamada como identificadores de función es que comprueba la función de errores de sintaxis y las dependencias que faltan cuando se asigna la devolución de llamada al componente.MATLAB Si hay un problema en la función de devolución de llamada, a continuación, devuelve un error inmediatamente en lugar de esperar a que el usuario desencadene la devolución de llamada.MATLAB Este comportamiento le ayuda a encontrar problemas en el código antes de que el usuario los encuentre.
Utilice una matriz de celdas para especificar una función de devolución de llamada que acepte argumentos de entrada adicionales que desee utilizar en la función. El primer elemento de la matriz de celdas es un identificador de función. Los demás elementos de la matriz de celdas son los argumentos de entrada adicionales que desea usar, separados por comas. La función que especifique debe definir los mismos dos argumentos de entrada como se describe en.Especifique un identificador de función Sin embargo, puede definir entradas adicionales en la declaración de función después de los dos primeros argumentos.
Este comando crea un botón pulsador y especifica la propiedad para que sea una matriz de celdas.uicontrol
Callback
En este caso, el nombre de la función es, y el valor del argumento de entrada adicional es.pushbutton_callback
5
b = uicontrol('Style','pushbutton','Callback',{@pushbutton_callback,5});
Aquí está la definición de la función para:pushbutton_callback
function pushbutton_callback(src,event,x) display(x); end
Al igual que las devoluciones de llamada especificadas como identificadores de función, comprueba las devoluciones de llamada especificadas como matrices de celdas para errores de sintaxis y dependencias faltantes cuando se asigna la devolución de llamada al componente.MATLAB Si hay un problema en la función de devolución de llamada, a continuación, devuelve un error inmediatamente en lugar de esperar a que el usuario desencadene la devolución de llamada.MATLAB Este comportamiento le ayuda a encontrar problemas en el código antes de que el usuario los encuentre.
Especifique una función anónima cuando desee que un componente de interfaz de usuario ejecute una función que no admita los dos argumentos necesarios para los identificadores de función y las matrices de celdas. Por ejemplo, este comando crea un botón de inserción y especifica la propiedad para que sea una función anónima.uicontrol
Callback
En este caso, el nombre de la función es, y su declaración de función define solo un argumento de entrada,.myfun
x
b = uicontrol('Style','pushbutton','Callback',@(src,event)myfun(x));
Puede especificar un vector de caracteres cuando desee ejecutar algunos comandos simples, pero la devolución de llamada puede volverse difícil de administrar si contiene más de unos pocos comandos. El vector de caracteres que especifique debe constar de expresiones válidas, que pueden incluir argumentos a funciones.MATLAB Por ejemplo: el vector de caracteres, es un comando válido y lo evalúa cuando el usuario hace clic en el botón.
hb = uicontrol('Style','pushbutton',... 'String','Plot line',... 'Callback','plot(rand(20,3))');
'plot(rand(20,3))'
MATLAB Si el vector de caracteres incluye una variable, por ejemplo, la variable debe existir en el espacio de trabajo base cuando el usuario desencadena la devolución de llamada o devuelve un error.'plot(x)'
x
La variable no necesita existir en el momento de asignar el valor de propiedad de devolución de llamada, pero debe existir cuando el usuario desencadena la devolución de llamada.A diferencia de las devoluciones de llamada que se especifican como identificadores de función o matrices de celdas, comprueba los vectores de caracteres para errores de sintaxis o dependencias que faltan.MATLABnot Si hay un problema con la expresión, permanece sin ser detectado hasta que el usuario desencadena la devolución de llamada.MATLAB