Pregunta

Tengo una GUI de MATLAB que tiene diferentes aspectos de funcionalidad, cada uno con su propio panel de controles de interfaz de usuario.Cuando se selecciona un panel, el otro se configura como invisible y viceversa.Sin embargo, comparten algunas de las mismas entradas en forma de menú emergente.¿Puedo incluir de alguna manera una instancia 'clon' del menú en el segundo panel?Me gustaría evitar tantas devoluciones de llamadas y controles de interfaz de usuario redundantes como sea posible.

¿Fue útil?

Solución

Supongo que si el uicontrol fuera un hijo directo de la figura, es posible que puedas ponerlo delante de todo.

Una solución mucho más sencilla es utilizar la misma devolución de llamada para múltiples controles de interfaz de usuario.En el editor de propiedades, puede modificar el nombre de la devolución de llamada y configurarlo en una función de devolución de llamada común.Además, puede crear un campo (p. ej. myPopupH) en el OpeningFcn de la GUI, en la que almacena los identificadores de las ventanas emergentes que deberían comportarse de la misma manera.Luego, en la devolución de llamada, usarías hObject, es decir.el primer argumento de entrada, para todos los get llamadas (para acceder al estado modificado del menú emergente), pero usarías handles.myPopupH en todos los set llamadas, para que pueda asegurarse de que ambas ventanas emergentes siempre tengan el mismo estado.Por lo tanto, el objeto ui puede ser redundante, pero todo el código (que es mucho más crítico) sólo existe en una única copia.

Un lugar donde habitualmente uso una única devolución de llamada para múltiples elementos de la interfaz de usuario es la función de solicitud de cierre a la que se accede desde el botón "Cancelar", así como desde la "X" que cierra la figura, y posiblemente desde uno de los "Archivos". -elementos de menú.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top