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.

Escriba callbacks en GUIDE

Devoluciones de llamada para diferentes acciones del usuario

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.

, , , , , ,axesfigureuibuttongroupuicontroluipaneluitable

Callback

El usuario final desencadena el componente. Por ejemplo: seleccionar un elemento de menú, mover un deslizador o presionar un botón pulsador.

, ,uicontextmenuuicontroluimenu

CellEditCallback

El usuario final edita un valor en una tabla cuyas celdas son editables.

uitable

CellSelectionCallback

El usuario final selecciona las celdas de una tabla.

uitable

ClickedCallback

El usuario final hace clic en la herramienta de empuje o palanca con el botón izquierdo del ratón.

,uitoggletooluipushtool

CloseRequestFcn

La cifra se cierra.

figure

CreateFcn

Callback se ejecuta al crear el objeto, pero antes de que se muestre.MATLAB

, , , , , , , , , ,axesfigureuibuttongroupuicontextmenuuicontroluimenuuipushtooluipaneluitableuitoggletooluitoolbar

DeleteFcn

Callback se ejecuta justo antes de borrar la figura.MATLAB

, , , , , , , , , ,axesfigureuibuttongroupuicontextmenuuicontroluimenuuipushtooluipaneluitableuitoggletooluitoolbar

KeyPressFcn

El usuario final presiona una tecla de teclado mientras el puntero está en el objeto.

, , , , ,figureuicontroluipaneluipushtooluitableuitoolbar

KeyReleaseFcn

El usuario final libera una tecla de teclado mientras el puntero está en el objeto.

, ,figureuicontroluitable

OffCallback

Se ejecuta cuando cambia el de una herramienta de alternancia.State'off'

uitoggletool

OnCallback

Se ejecuta cuando cambia el de una herramienta de alternancia.State'on'

uitoggletool

SizeChangedFcn

El usuario final cambia el tamaño de un grupo de botones, figura o panel cuya propiedad es.Resize'on'

, ,figureuipaneluibuttongroup

SelectionChangedFcn

El usuario final selecciona un botón de opción o botón de alternancia diferente dentro de un grupo de botones.

uibuttongroup

WindowButtonDownFcn

El usuario final presiona un botón del ratón mientras el puntero está en la ventana de la figura.

figure

WindowButtonMotionFcn

El usuario final mueve el puntero dentro de la ventana de la figura.

figure

WindowButtonUpFcn

El usuario final suelta un botón del ratón.

figure

WindowKeyPressFcn

El usuario final presiona una tecla mientras el puntero está en la figura o en cualquiera de sus objetos secundarios.

figure

WindowKeyReleaseFcn

El usuario final libera una clave mientras el puntero está en la figura o en cualquiera de sus objetos secundarios.

figure

WindowScrollWheelFcn

El usuario final gira la rueda del ratón mientras el puntero está en la figura.

figure

Funciones de devolución de llamada generadas por guía y valores de propiedad

Cómo GUIDE administra las funciones y propiedades de devolución de llamada

Después de agregar una, o componente a la interfaz de usuario, pero antes de guardarla, GUIDE rellena la propiedad con el valor,.uicontroluimenuuicontextmenuCallback%automatic Este valor indica que GUIDE generará un nombre para la función de devolución de llamada.

Al guardar la interfaz de usuario, GUIDE agrega una definición de función de devolución de llamada vacía al archivo de código y establece la propiedad del control para que sea una función anónima.Callback Esta definición de función es un ejemplo de una función de devolución de llamada generada por GUIDE para un botón pulsador. Si guarda esta interfaz de usuario con el nombre, a continuación, GUIDE establece la propiedad del botón de inserción en el siguiente valor: se trata de una función anónima que sirve como referencia a la función,.

function pushbutton1_Callback(hObject,eventdata,handles) % hObject    handle to pushbutton1 (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA)  end
myuiCallback
@(hObject,eventdata)myui('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
pushbutton1_Callback Esta función anónima tiene cuatro argumentos de entrada. El primer argumento es el nombre de la función de devolución de llamada. Los tres últimos argumentos son proporcionados por, y se discuten en la sección,.MATLABSintaxis de devolución de llamada GUIDE

Nota

GUIDE no genera automáticamente funciones de devolución de llamada para otros componentes de interfaz de usuario, como tablas, paneles o grupos de botones. Si desea que cualquiera de estos componentes ejecute una función de devolución de llamada, debe crear la devolución de llamada haciendo clic con el botón derecho en el componente en el diseño y seleccionando un elemento en el menú contextual.View Callbacks

Sintaxis de devolución de llamada GUIDE

Todas las devoluciones de llamada deben aceptar al menos tres argumentos de entrada:

  • — El componente de interfaz de usuario que activó la devolución de llamada.hObject

  • : Variable que contiene información detallada sobre acciones específicas de ratón o teclado.eventdata

  • : A que contiene todos los objetos de la interfaz de usuario.handlesstruct GUIDE utiliza la función para almacenar y mantener esta estructura.guidata

Para que la función de devolución de llamada acepte argumentos adicionales, debe colocar los argumentos adicionales al final de la lista de argumentos en la definición de función.

El argumento EventData

El argumento proporciona información detallada a ciertas funciones de devolución de llamada.eventdata Por ejemplo, si el usuario final desencadena el, a continuación, proporciona información sobre la clave específica (o la combinación de teclas) que el usuario final presionado.KeyPressFcnMATLAB Si no está disponible para la función de devolución de llamada, la pasa como una matriz vacía.eventdataMATLAB En la tabla siguiente se muestran las devoluciones de llamada y los componentes que utilizan.eventdata

Nombre de propiedad de devolución de llamadaComponente
WindowKeyPressFcn
WindowKeyReleaseFcn
WindowScrollWheel
figure
KeyPressFcn, ,figureuicontroluitable
KeyReleaseFcn, ,figureuicontroluitable
SelectionChangedFcnuibuttongroup
CellEditCallback
CellSelectionCallback
uitable

Renombrar y quitar devoluciones de llamada generadas por la guía

Renombrar callbacks

GUIDE crea el nombre de una función de devolución de llamada combinando la propiedad del componente y el nombre de la propiedad de devolución de llamada.Tag Si cambia el valor del componente, GUIDE cambia el nombre de la devolución de llamada la próxima vez que guarde la interfaz de usuario.Tag

Si decide cambiar el valor después de guardar la interfaz de usuario, GUIDE actualiza los siguientes elementos (suponiendo que todos los componentes tienen valores únicos).TagTag

  • La definición de función de devolución de llamada del componente

  • El valor de propiedad de devolución de llamada del componente

  • Las referencias en el archivo de código al campo correspondiente en la estructurahandles

Para cambiar el nombre de una función de devolución de llamada sin cambiar la propiedad del componente:Tag

  1. Cambie el nombre en la definición de función de devolución de llamada.

  2. Actualice la propiedad de devolución de llamada del componente cambiando el primer argumento pasado a la función anónima. Por ejemplo, la propiedad de devolución de llamada original de un botón Push podría tener este aspecto:

    @(hObject,eventdata)myui('pushbutton1_Callback',...                            hObject,eventdata,guidata(hObject))

    En este ejemplo, debe cambiar al nuevo nombre de función.'pushbutton1_Callback'

  3. Cambie todas las demás referencias al nombre de la función antigua por el nuevo nombre de función en el archivo de código.

Eliminación de devoluciones de llamada

Puede eliminar una función de devolución de llamada cuando desee quitar o cambiar la función que se ejecuta cuando el usuario final realiza una acción específica. Para eliminar una función de devolución de llamada:

  1. Busque y reemplace todas las instancias que hacen referencia a la función de devolución de llamada en el código.

  2. Abra la interfaz de usuario en GUIDE y reemplace todas las instancias que hagan referencia a la función de devolución de llamada en el inspector de propiedades.

  3. Elimine la función de devolución de llamada.

Temas relacionados