matlab中figure对象的按键响应
来源:互联网 发布:阿里云解析自动更新ip 编辑:程序博客网 时间:2024/05/16 05:03
[转载] http://blog.sina.com.cn/s/blog_6163bdeb0100n9cq.html
常用的有两个WindowKeyPressFcn和WindowKeyReleaseFcn,分别表示按下按键和释放按键的响应函数,两者调用形式上是一样的。
1、说明
以indowKeyPressFcn为例,按键响应无论当前焦点在figure上还是控件上,这一点和鼠标响应有所不同。它的响应函数需要至少两个参数,即发生按键的figure和event结构体。
even结构中包含了按键的各种信息,如下图
其中含义如下
- Character表示按键实际会显示的字符,如shift+k,则此值为K,只按下shift,则此值为空;
- Modifier是一个元胞类型,包含所按所有修饰键的名字,如按下ctrl+shift+a,则此值为{‘shift’ ,’control’};
- Key表示按键的名称,如k,a,multiply,delete等。
2、简单的测试程序
%% 测试windowkeypressfcn响应函数function keypress_testclcclose allclear all%%fig = figure;plot(1:10)set(fig,'windowkeypressfcn',@keypressfcn);set(fig,'windowkeyreleasefcn',@keyreleasefcn); function keypressfcn(h,evt) fprintf('************press \n'); evt fprintf('************ \n'); end function keyreleasefcn(h,evt) fprintf('************release \n'); evt fprintf('************ \n'); endend
要注意,由于不可能同时按下两个键,所以多按键是挨个响应的。如按下ctrl+shift+a时,输出打印如下
************pressevt = Character: '' Modifier: {'control'} Key: 'control'************************pressevt = Character: '' Modifier: {'shift' 'control'} Key: 'shift'************************pressevt = Character: '' Modifier: {'shift' 'control'} Key: 'a'************************releaseevt = Character: '' Modifier: {'shift' 'control'} Key: 'a'************************releaseevt = Character: '' Modifier: {'control'} Key: 'shift'************************releaseevt = Character: '' Modifier: {1x0 cell} Key: 'control'************
可知按下顺序为control—shift—a,释放顺序为a—shift—control。
3、通过按下按键,从停止位置继续运行
gcf是Current figure handle,调用get函数得到curent figure的CurrentCharacter属性。判断是否按下e键,从而从while中跳出去继续运行。程序如下所示
figure;pause(1);while 1 pause(0.1) if strcmpi(get(gcf,'CurrentCharacter'),'e') break; endend
阅读全文
0 0
- matlab中figure对象的按键响应
- matlab中figure是什么意思
- matlab figure的用法
- Matlab: figure的用法
- Matlab: figure的用法
- 【Matlab】关于axes和figure对象的关系
- MATLAB figure中提取数据
- matlab中figure图片大小修改
- matlab中figure的坐标轴label、title、xticklabel的旋转
- matlab中figure的坐标轴label、title、xticklabel的旋转
- matlab中figure有多个图时,设定总标题的方法
- 如何改变MATLAB中figure窗口的背景颜色
- 将matlab弹出的figure嵌入WPF窗体中
- 把matlab的figure窗口合并到主窗口中
- MATLAB中figure转pdf中文乱码的小技巧
- 设置MATLAB中figure的背景为白色
- 去掉matlab中figure图的空白边缘
- 将matlab弹出的figure嵌入wpf窗体中
- 深入理解Java中为什么内部类可以访问外部类的成员
- easyui时间控件只显示年月
- checkbox全选使用 attr不能用prop()与attr()的用法
- IOS中自定义段落样式及大小的计算
- linux 查看运行进程所在目录
- matlab中figure对象的按键响应
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- 【es6】数值的扩展
- MFC 常用系统函数
- 编译 Squid3 搭建HTTPS代理服务器
- Custom Control进行多行列表控制CMultilineList类
- 自顶向下深入分析Netty(三)--Bootstrap源码分析
- tomcat部署birt.war
- JAVA之equals对于引用类型比较的方式不同呢