如何在GUI运行时拦截Matlab中的击键

lea*_*vst 4 keyboard matlab user-interface interception

你知道如何在Matlab gui运行时将键盘笔划读入Matlab吗?(即,不使用"输入"功能,它向命令窗口发送提示并需要您按返回).

我们希望尽可能避免使用mex函数.

Kee*_*ger 9

您首先必须通过句柄声明您的数字:

fig = figure;
Run Code Online (Sandbox Code Playgroud)

然后你可以设置属性(在下面的引号中)来激活你为了响应用户交互而编写的函数(使用@符号):

set(fig,'KeyPressFcn',@keyDownListener)
set(fig, 'KeyReleaseFcn', @keyUpListener);
set(fig,'WindowButtonDownFcn', @mouseDownListener);
set(fig,'WindowButtonUpFcn', @mouseUpListener);
set(fig,'WindowButtonMotionFcn', @mouseMoveListener);
Run Code Online (Sandbox Code Playgroud)

上面的例子来自shooter03.ma MATLAB空间射击游戏,一个很好的源码(来自matlab文件交换),用于MATLAB中用户对象交互的许多方面:

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