How to set shortcuts for zoom tool in my own GUI?
4 次查看(过去 30 天)
显示 更早的评论
I wrote a GUI in which the zoom tool was frequently used, so I wanted to give it a shortcut. I wrote the figure's KeyPressFcn as follows, but it didn't work.
Q1. The "Ctrl+0" means zoom out, and it worked just fine. But "Ctrl+E" to zoom on just didn't work. How should I wrote the function `zoomKeys`?
Q2. I wanted to use "ctrl+=", but it was used by the editor to zip the codes. Can I still somehow use "Ctrl+="?
function myfunc1(fig)
fig.KeyPressFcn = @zoomKeys;
hAxes = axes(fig);
% some codes
plot(1:10);
function zoomKeys(~, event)
if strcmp(event.Modifier, 'control')
switch event.Key
case 'E' %'='
zoom;
% zoom(gcf, 'on');
case '0'
zoom out;
end
end
end
end
2 个评论
Mohammad Sami
2020-1-26
Using just zoom, will only toggle the mouse zoom on and off.
Pass a value to specifiy how much to zoom in.
zoomfactor = 2;
zoom(zoomfactor);
采纳的回答
Mohammad Sami
2020-1-26
编辑:Mohammad Sami
2020-1-26
Just tested your code. turns out event key is in lower case. Just to safe (in case of capslock), lets convert the value to upper case before comparison.
function zoomKeys(~, event)
if strcmp(event.Modifier, 'control')
k = upper(event.Key);
% disp(k); % for debugging
switch k
case 'E' %'='
zoom;
% zoom(gcf, 'on');
case '0'
zoom out;
end
end
end
9 个评论
Mohammad Sami
2020-1-27
See if Yair Altman's solution works for you. It is quite an old post, so I don't know if it works for the current version.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Industrial Statistics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!