app designer (matlab) 如何调用快捷键

举个栗子:

使用“Alt+A”的组合键获取matlab已打开的所有Figure的号码

在MATLAB App Designer中,要实现按下"Alt+A"组合键来获取所有已打开图窗的号码,需要创建一个回调函数以响应键盘按键事件。以下是具体步骤:

  1. 打开App Designer并创建一个新的应用程序。

  2. 选择应用程序的UIFigure组件。

  3. 在右侧的属性面板中,找到"Callbacks"部分,点击"WindowKeyPressFcn"旁边的加号图标以创建一个键盘按键回调函数。

  4. 在新创建的function UIFigureWindowKeyPressFcn(app, event)函数内,检查按键组合是否为"Alt+A",然后编写相应的代码来获取所有已打开的图窗号码。

示例代码如下:

function GreatFigureUIFigureKeyPress(app, event)
    key = event.Key; % 返回的是按键字符的小写,如:按空格键返回space
    modifier = event.Modifier;  % ctrl alt shift 以及它们的任意组合
    %% 注意modifier识别的ctrl按键为control字符
    if all([ismember(modifier,"control"),key == 'a']) % Alt+A快捷键设置:填充所有Figure号码
        allFigures = findall(groot, 'Type', 'figure');
        FigNums = [allFigures.Number];
        app.FigTex.Value = num2str(FigNums); % app.FigTex是app中创建的一个“编辑字段”组件
    end
end

小技巧:ismember、all

ismember(a,b):判断a的元素是否属于b

all(ismember(a,b)):判断a的元素是否全属于b

利用这两个函数可以实现快捷键功能的多样化,如:

        1.ctrl+a、alt+a、ctrl+alt+a多个不同的快捷键实现同一个功能,只需

                if all([ismember(modifier,["control","alt"]),key == 'a'])  

        2.ctrl+alt+a 多个功能键组合成的快捷键实现同一个功能,只需

                if all([ismember(["control","alt"],modifier),key == 'a']) 

注:

键盘快捷键需要用到键盘回调函数,而键盘回调函数有两种:KeyPressFcnWindowKeyPressFcn键盘回调,区别在于:

光标(不是鼠标)位于某组件内部时,KeyPressFcn无法调用,而WindowKeyPressFcn不受限制。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值