matlab gui 按钮快捷键设置

何大神之前做的pascal的gui,在同一张图片上多次添加的时候,都需要点击“添加”按钮,有点麻烦。

于是,在原有功能上,给“添加”按钮增加一个快捷键。

之前的代码:

function onClickAddGt(~, ~)
        if (isempty(currentImage))
            errordlg('当前图片为空','无法添加标注');
            return;
        end
        % 设置当前坐标轴
        axes(currentImageAxes);
        [x, y] = ginputc(2, 'Color', 'r', 'LineWidth', 1);
        % 计算外接矩形框
        bbs(1) = min(floor(x(1)), floor(x(2))); %xmin
        bbs(2) = min(floor(y(1)), floor(y(2))); %ymin
        bbs(3) = max(ceil(x(1)), ceil(x(2)));   %xmax
        bbs(4) = max(ceil(y(1)), ceil(y(2)));   %ymax
        obj = PASemptyobject();
        obj.bbox = bbs;
        
        if (bbs(4) - bbs(2) <= 5 || bbs(3) - bbs(1) <= 5)
            errordlg('标注框长和宽必须大于5个像素','无效的标注框');
            return;
        end
        currentGt.objects = [currentGt.objects; obj];
        updateImageAndGt();
    end
set(btnAddGt, 'Callback', @onClickAddGt);

只需要添加快捷键部分就可以了(快捷键取add的首字母'a'):

set(gcf,'KeyPressFcn', @kpf);
function kpf(~, ~)
    key = get(gcf, 'currentcharacter');
    switch key
        case 'a'
            onClickAddGt;
    end
end

ok。



你可能感兴趣的:(matlab gui 按钮快捷键设置)