Question

J'ai une interface graphique MATLAB dispose de différents aspects de la fonctionnalité, chacun avec leur propre panneau de uicontrols.Lorsqu'un groupe est sélectionné, l'autre est défini à l'invisible, et vice-versa.Cependant, elles partagent les mêmes entrées sous la forme d'un menu contextuel.Puis-je inclure un 'clone' exemple de menu sur le deuxième panneau, en quelque sorte?Je voudrais éviter que de nombreux redondant rappels et uicontrols que possible.

Était-ce utile?

La solution

Je pense que si le uicontrol est un enfant direct de la figure, vous pourriez être en mesure de le mettre en face de tout.

Une solution beaucoup plus simple est d'utiliser la même fonction de rappel pour plusieurs uicontrols.Dans l'éditeur de propriétés, vous pouvez modifier le nom de rappel et de la régler à une fonction de rappel.En outre, vous pouvez créer un champ (par ex. myPopupH) dans le OpeningFcn de l'interface graphique, dans lequel vous stockez les poignées des fenêtres pop-up qui devrait se comporter de la même manière.Ensuite, dans la fonction de rappel, vous pouvez utiliser hObject, c'est à direle premier argument d'entrée, pour tous les get appels (pour accéder à la modification de l'état de la pop-up menu), mais que vous souhaitez utiliser handles.myPopupH dans tous les set appels, de sorte que vous pouvez vous assurer que les deux popups toujours avoir le même état.Ainsi, l'interface utilisateur de l'objet peut être redondant, mais tout le code (qui est beaucoup plus critique) n'existe qu'en un seul exemplaire.

Un endroit où je utiliser régulièrement un rappel unique pour de multiples éléments de l'interface utilisateur est la fonction de demande qui est accessible depuis le bouton "Annuler"à bouton aussi bien que de la "X" qui ferme la figure, et, éventuellement, de celui de la "Fichier"-des éléments de menu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top