How can I set a GUI callback such that it uses the up-to-date handles structure as an input variable?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Marc Lalancette
il 9 Dic 2013
Commentato: Marc Lalancette
il 10 Dic 2013
Hello, I'm trying to have users navigate a plot by clicking on it. However, another 3-d plot is in "rotate" mode so I've had to use the workaround of turning off listeners and resetting the KeyPressFcn:
hManager = uigetmodemanager(hObject); % hObject is my GUI figure.
set(hManager.WindowListenerHandles, 'Enable', 'off');
set(hObject, 'KeyPressFcn', @figure_NiftiViewer_KeyPressFcn);
Unfortunately, I can't figure out how (or if it's possible) to reset the callback to it's default GUIDE "way", where it would have the "handles" structure as an input argument. If I explicitly give it these ways, it doesn't get updated:
set(hObject, 'KeyPressFcn', {@figure_NiftiViewer_KeyPressFcn, handles});
set(hObject, 'KeyPressFcn', {@figure_NiftiViewer_KeyPressFcn, guidata(hObject)});
And unfortunately, if you look at what's displayed in the figure properties in the property inspector, it's:
NiftiViewer('figure_NiftiViewer_KeyPressFcn',hObject,eventdata,guidata(hObject))
which doesn't seem like a "valid" function (I tried putting that in and it gave an error).
So is there a way to manually make this callback act the same way GUIDE makes it act?
Thanks!
0 Commenti
Risposta accettata
Walter Roberson
il 10 Dic 2013
Try
set(hObject, 'KeyPressFcn', @(src, evt) figure_NiftiViewer_KeyPressFcn(src, evt, guidata(src)) );
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!