waitforbuttonpressf​h

like waitforbuttonpress but for specified figure handle including uifigure.
21 Downloads
Aktualisiert 29 Mai 2020

Lizenz anzeigen

based off of contribution "getkey", like waitforbuttonpress, this causes a uiwait to occur until a key is pressed but with respect to the given figure. As a bonus, the key is returned. (Note the keypressfcn returns multichar strings for non-ascii characters, e.g. 'return' for Enter)

It is useful in the context of App Designer uiFigure which, at least in 2019b, had its HandleVisibility property hard coded to 'off' and was unsettable which meant it would never be gcf and so never be able to be used by waitforbuttonpress. In my particular use, since imrect doesn't work with uifigure (not sure about 2020a), I used drawrectangle but that's asynchronous and I needed it to wait (like imrect).

R=drawrectangle(app.axBF);
ch = waitforbuttonpressfh(app.UIFigure)

Note, though by spec getkey itself would seem to be sufficient for this purpose, it could fail with drawrectangle, after adjusting it, causing the terminating/resuming key press to be ignored. (I believe that's due to its use of strings in its keypress callback which uses gcbf which perhaps changes due to drawrectangle and then gets evaluated in its environment? Just a guess. I used a callback w/o strings).

This also works in compiled apps.

I haven't tested this with other versions but I would think this should work with any any version that had a 'keypressfcn' callback/property for its figure/uifigure.

Zitieren als

Andrew Diamond (2024). waitforbuttonpressfh (https://www.mathworks.com/matlabcentral/fileexchange/76363-waitforbuttonpressfh), MATLAB Central File Exchange. Abgerufen .

Kompatibilität der MATLAB-Version
Erstellt mit R2019b
Kompatibel mit R2019b und späteren Versionen
Plattform-Kompatibilität
Windows macOS Linux
Quellenangaben

Inspiriert von: getkey

Community Treasure Hunt

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

Start Hunting!
Version Veröffentlicht Versionshinweise
1.0.0