Effacer les filtres
Effacer les filtres

uicontextmenu interactions with GUI

2 vues (au cours des 30 derniers jours)
Jerry Gregoire
Jerry Gregoire le 28 Jan 2014
I have a GUI and when I right click a ui for the uicontext menu, I want to call a general callback for processing. To do this I need to know which UI triggered the callback. Currently I have This in my ui_CreateFcn:
hcmenu = uicontextmenu;
uimenu(hcmenu, 'label' , 'fdatool', 'callback', 'UI_callbackHandler(handles)');
set(hObject, 'uicontextmenu', hcmenu)
Where handles are in the base, (0). Is there a way that I can find which ui in my GUI triggered the call. Right now I am creating different functions in each UI. For example:
____
...
uimenu(hcmenu, 'label' , 'Name', 'callback', 'UI_callbackHandler1(handles)');
...
____
...
uimenu(hcmenu, 'label' , 'Name', 'callback', 'UI_callbackHandler2(handles)');
...
______
and so on. It is cumbersome Since the callbacks are very similar.

Réponse acceptée

Jerry Gregoire
Jerry Gregoire le 28 Jan 2014
Just figured good way to do it.
I tried passing the calling object's handle: ... uimenu(hcmenu, 'label' , 'Name', 'callback', UI_callbackHandler(hObject, handles)'); ...
But that is not available during execution. But I can pass a string, I chose the UI Tag
UITag = get(hObject, 'tag');
hcmenu = uicontextmenu;
uimenu(hcmenu, 'label' , 'Name', 'callback', ['UI_callbackHandler(''' UITag ''', handles)']);
set(hObject, 'uicontextmenu', hcmenu)
Now in my callback the first arg is the tag of the UI that tripped the callback.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 28 Jan 2014
If you use the function handle variety of callback, then it will be passed two extra arguments automatically, the first of which is the handle of the object that it is being called on behalf of. You can identify that for your purposes in a variety of ways, including through the Tag or through the UserData

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by