Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to intercept key strokes in Matlab while GUI is running

Do you know how to read keyboard strokes into Matlab while a Matlab gui is running? (I.e., without using the "input" function which sends a prompt to the command window and needs you to press return).

We would like to avoid using a mex function if possible.

like image 961
learnvst Avatar asked Dec 09 '22 00:12

learnvst


1 Answers

You would first have to declare your figure by handle:

fig = figure;

then you can set properties (in quotes below) to activate functions that you've written to respond to user interactions (with the @ signs):

set(fig,'KeyPressFcn',@keyDownListener)
set(fig, 'KeyReleaseFcn', @keyUpListener);
set(fig,'WindowButtonDownFcn', @mouseDownListener);
set(fig,'WindowButtonUpFcn', @mouseUpListener);
set(fig,'WindowButtonMotionFcn', @mouseMoveListener);

The above example is from shooter03.m a MATLAB space shooter, an excellent source (from the matlab file exchange) for many aspects of user object interaction in MATLAB:

http://www.mathworks.com/matlabcentral/fileexchange/31330-daves-matlab-shooter/content/shooter03/shooter03.m

like image 176
Keegan Keplinger Avatar answered Dec 22 '22 01:12

Keegan Keplinger