• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【转】Matlab GUI 鼠标事件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://blog.sina.com.cn/s/blog_544233cf0100fdxd.html

 

今天Google了一下Matlab是不是能跟踪鼠标移动的轨迹,真的可以!

 

Matlab GUI 如何响应鼠标事件

 

摘自:MATLAB 程式设计与应用

 

这些性质都是附属於一个图形视窗,因此,他们规范了在此图形视窗下,各项滑鼠事件的反应指令.

一般而言,我们希望滑鼠先被按下,然后再移动滑鼠时,才会触发移动时的反应指令.欲达到此效果,我们必须做下列项:

在滑鼠按钮被按下时,设定 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值.

在滑鼠按钮被释放时,清除 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值.

因此,只有在滑鼠按钮被按下,且滑鼠在移动时,对应於WindowButtonMotionFcn 的反应指令才会被呼叫.

 

以下我们用一个简单的例子来说明.在这个例子中,滑鼠事件会产生下列反应:

按下滑鼠时,MATLAB 指令视窗会出现「Mouse down!」的讯息.

按下并移动滑鼠时,MATLAB 会在图形视窗画出滑鼠轨迹,并指令视窗印出「Mouse is moving!」及当时滑鼠的位置.

释放滑鼠时,MATLAB 指令视窗会出现「Mouse up!」的讯息.

 

 

代码
function tmouse(action)
% TMOUSE 本例展示如何以Handle Graphics来设定滑鼠事件(Mouse
% Events)的反应指令(Callbacks)
if nargin == 0, action = 'start'; end
switch(action)
% 开启图形视窗
case 'start',
axis([
0 1 0 1]);% 设定图轴范围
box on;
% 将图轴加上图框
title(
'Click and drag your mouse in this window!');
% 设定滑鼠按钮被按下时的反应指令为「tmouse down」
set(gcf, 'WindowButtonDownFcn', 'tmouse down');
% 滑鼠按钮被按下时的反应指令
case 'down',
% 设定滑鼠移动时的反应指令为「tmouse move」
set(gcf, 'WindowButtonMotionFcn', 'tmouse move');
% 设定滑鼠按钮被释放时的反应指令为「tmouse up」
set(gcf, 'WindowButtonUpFcn', 'tmouse up');
% 列印「Mouse down!」讯息
fprintf(
'Mouse down!\n');
% 滑鼠移动时的反应指令
case 'move',
currPt
= get(gca, 'CurrentPoint');
x
= currPt(1,1);
y
= currPt(1,2);
line(x, y,
'marker', '.', 'EraseMode', 'xor');
% 列印「Mouse is moving!」讯息及滑鼠现在位置
fprintf(
'Mouse is moving! Current location = (%g, %g)\n', currPt(1,1), currPt(1,2));
% 滑鼠按钮被释放时的反应指令
case 'up',
% 清除滑鼠移动时的反应指令
set(gcf, 'WindowButtonMotionFcn', '');
% 清除滑鼠按钮被释放时的反应指令
set(gcf, 'WindowButtonUpFcn', '');
% 列印「Mouse up!」讯息
fprintf(
'Mouse up!\n');
end

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
多项式结式的的MATLAB实现发布时间:2022-07-18
下一篇:
Delphi程序实现多语言功能发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap