• 【转】Matlab GUI 鼠标事件


    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
  • 相关阅读:
    django 重建一个表
    近期数据工作的知识点总结(model-dict高级用法)
    搬运django中文网 CentOS7下部署Django项目详细操作步骤(django安装网站有时候打不开,备份用)
    创建ftp免密只读用户(外系统读取csv共享数据)
    某某系统从外部基础库读取数据
    离线安装 django-axes
    django queryset用法总结二
    django queryset用法总结一
    nginx 启动,停止 重启
    安装安全狗失败 ,linux wget的时候不去找目标ip,而是路由到其他ip,原因分析
  • 原文地址:https://www.cnblogs.com/xfzhang/p/1880911.html
Copyright © 2020-2023  润新知