【MATLAB】如何使用键盘回调以及在app设计中应用

整理时间:2020-06-28

关键词
键盘回调 、 app设计 、 MATLAB

目录:
1.抛转
2.引玉

3.深入

正文:
1.抛转
在实际使用中,我们可能会不断的点击鼠标来使用button控件,但是这个很麻烦也很累,我们如果能够直接在键盘上控制就好了,这样会方便很多。
那么,怎么做呢?
先从下面这个代码开始了解:

%测试键盘按键值
function key_test
clc
close all
%%
fig = figure(1);
spy;%显示matlab狗
set(fig,'windowkeypressfcn',@keypressfcn);
set(fig,'windowkeyreleasefcn',@keyreleasefcn);
    function keypressfcn(h,evt)
        disp('--------keypress------- ');
        disp(evt.Key);
    end
    function keyreleasefcn(h,evt)
        disp('-------keyrelease------- ');
        disp(evt.Key);
    end
end

运行结果如下:
在这里插入图片描述
请认真理解这段代码,这里做一个铺垫,后边会用到 它的设计思路与键盘返回值。
注: 此处参考文章:http://blog.sina.com.cn/s/blog_6163bdeb0100n9cq.html
2.引玉
言归正传,我们是要在我们的app中使用键盘回调,
比如:我要制作一个图片浏览工具,我不想通过鼠标去点击buttono控件,这样手累,我想通过键盘的左右键去控制,这样方便很多。
以下,我就根据这个应用说明在app中的应用。
在这里插入图片描述

% Window key press function: UIFigure
function UIFigureWindowKeyPress(app, event)
keyValue = event.Key;
StrArrayNew={['keyValue=',keyValue]};
logRefresh_func(app,StrArrayNew);
switch keyValue
    case "space"
        %暂停/播放
    case "leftarrow"
        %上一张
    case "rightarrow"
        %下一张
    otherwise
end
end

运行整个APP,按不同的键盘按键,响应如下:

在这里插入图片描述
大功告成 !!!ok~

3.深入
WindowKeyPressFcn - 窗口按键回调
当用户在 UI 图窗或子组件具有焦点的情况下按下一个键时,将执行此回调函数。

KeyPressFcn - 按键回调
当用户在 UI 图窗或子组件具有焦点的情况下按下一个键时,将执行此回调函数。
在接受键盘焦点的组件(例如编辑字段)上按下一个键时不会执行回调,除非该组件被禁用。
您可以通过将 Enable 或 Editable 属性设置为 ‘off’ 来禁用组件。

特别提醒:
键盘操作前,
一定要确保button不被选中!!!
一定要把鼠标移开button等组件!!


THE END~
感谢您的阅读,更多新玩法,新技巧,请查阅我的专栏~~~

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/106992734
今日推荐