快捷键是某些特定的按键、按键顺序或按键组合,可用于完成一个特定操作。快捷键往往与Ctrl键、Shift键、Alt键、Fn键以及Windows键配合使用。对于一个比较完善的软件来说,快捷键是必需的,这样可以加快操作速度,提高工作效率。
1、按键回调函数 句柄函数名使用说明WindowKeyPressFcn当焦点在figure上或它的任何组件上时,按下任意键执行该函数WindowKeyReleaseFcn当焦点在figure上或它的任何组件上时,释放任意键执行该函数KeyPressFcn当焦点在figure上而不是在它的任何组件上时,按下任意键执行该按钮KeyReleaseFcn当焦点在figure上而不是在它的任何组件上时,释放任意键执行该按钮eventdata参数是一个包含Key、Character和Modifier这3个字段的结构体,3个字段说明如下:
字段说明Key被按下键的键名(小写字母)Character被按下键的键符解释Modifier被按下的辅助键的键名(如Ctrl、Shift、Alt)举个栗子,例如对于WindowKeyPressFcn: ①当焦点定位在GUI figure上时,在键盘上按下“]”键,这时eventdata的3个字段分别是: Character:’]’;Modifier:{1x0 cell};Key:‘rightbracket’; “]”的键符是“]”,键名是“rightbracket”,因为没有按辅助键,所以Modifier为空。
②当焦点定位在GUI figure上时,在键盘上按下组合键“Ctrl”+“=”键,这时eventdata的3个字段分别是: Character:’=’;Modifier:{‘control’};Key:‘equal’; 因为按下了辅助键Ctrl,所以Modifier为’control’。
综上示例,我们可以根据回调函数中eventdata的3个字段值,设定自定义的快捷键。
2、案例示例创建一个GUI界面,主界面如下: 界面上含有3个按钮Pushbutton,1个静态文本框text。 功能介绍: ①单击“加1”按钮,text中的数据进行加1操作; ②单击“减1”按钮,text中的数据进行减1操作; ③单击“退出”按钮,退出GUI界面。
对应的程序如下: “加1”程序:
function pushbutton1_Callback(hObject, eventdata, handles)
N=str2double(get(handles.text1,'String'));
set(handles.text1,'String',num2str(N+1));
“减1”程序:
function pushbutton2_Callback(hObject, eventdata, handles)
N=str2double(get(handles.text1,'String'));
set(handles.text1,'String',num2str(N-1));
“退出”程序:
function pushbutton3_Callback(hObject, eventdata, handles)
close(gcf)
3、给按钮添加快捷键
快捷键如下表:
功能快捷键“加1”程序Ctrl+q“减1”程序Alt+q“退出”程序q 3.1 创建WindowKeyPressFcn函数视图——>查看回调——>WindowKeyPressFcn 函数代码如下:
function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
if isempty(eventdata.Modifier)%判断是否有快捷键
ctrl='';%无则赋值为空
else
ctrl=eventdata.Modifier{1};%有,则取出辅助键
end
key=eventdata.Key;%提取键名
switch ctrl
case 'control'%辅助键为Ctrl时
switch key
case 'q' %Ctrl+q +1操作
pushbutton1_Callback(handles.pushbutton1,[],handles)
otherwise
end
case 'alt'%辅助键为Alt时
switch key
case 'q'%Alt+q -1操作
pushbutton2_Callback(handles.pushbutton1,[],handles)
otherwise
end
case ''%无辅助键时
switch key
case 'q'%q执行退出操作
pushbutton3_Callback(handles.pushbutton1,[],handles)
otherwise
end
otherwise
end
4、拓展
4.1 给菜单添加快捷键
给菜单添加快捷键十分简单,选择 菜单编辑器——>选择菜单——>在右侧直接添加快捷键即可
前面给出的实例都是单个辅助键加一个按键组成的快捷键,当需要大量快捷键或是有特定需要时,可能会用到多个辅助键。
当按下Ctrl+Shift+a时,eventdata的3个字段分别是: Character:’’;Modifier:{‘shift’ ‘control’};Key:‘a’; 当按下Ctrl+Shift+alt+a时,eventdata的3个字段分别是: Character:’’;Modifier:{‘shift’ ‘control’ ‘alt’};Key:‘a’; 可以看出,所有的辅助键都保存在Modifier字段里,而且3个辅助键的排列顺序依次是:‘shift’–>‘control’–>‘alt’,按键保存在Key字段里。 程序如下:
ctrl='';
if ~isempty(eventdata.Modifier)
for i=1:length(eventdata.Modifier)
ctrl=[ctrl.eventdata.Modifier{i},'+'];
end
end
ctrl=ctrl(1:end-1);%得到辅助键
key=eventdata.Key;%按键
switch ctrl
case 'shift'%shift
switch key
case 'a'
...
otherwise
end
otherwise
end
完整程序,可以参考:https://download.csdn.net/download/didi_ya/17073895
ok,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~