KeyPressFcn and WindowKeyPressFcn not working
Mostra commenti meno recenti
I have a GUI (using the old figure, not uifigure). The figure has a KeyPressFcn to do some action.
So I have a pushbutton, and after clicking it I want to hide the button, so its callback turns off its visibility ('Visible', 'off').
When that happens, the KeyPressFcn (or WindowKeyPressFcn I also tried it) if the figure stops working. No matter what I do, I can't recover the focus.
So this is what I tried, and nothing worked, even with everything combined:
set(figHandle, 'CurrentObject', figHandle)
set(figHandle, 'CurrentObject', pushbuttonHandle)
figure(figHandle)
gco(figHandle)
gcf(figHandle)
figHandle.Visible = 'off'
figHandle.Visible = 'on'
drawnow
NOTHING WORKS.
Only way to make it work again is clicking the figure. But thats exactly what I DONT want to do. I must not click the figure after clicking the pushbutton, at least before the desired keypress.
However, if I enter debubg mode using breakpoints, then this works:
set(figHandle, 'CurrentObject', figHandle)
figure(figHandle)
But it does not work if not in debug mode. I don't understand this behaviour. I know removing visbility to objects have some strange side effects. But it should never remove permanently focus from a figure.
Why does it work in debugging mode, but not in normal mode?
Matlab R2020b
3 Commenti
Voss
il 29 Feb 2024
Rather than setting the pushbutton invisible in its callback, try setting its position to something outside the figure, e.g., [-10 -10 1 1], and see if that changes anything.
André
il 8 Mar 2024
XXX
il 27 Nov 2024
Voss's suggestion worked. Thank you so much. Now I can finally have a stress-free Thanksgiving and escape this nonsense GUI logic!
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Develop Apps Programmatically in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!