AppDesigner中ButtonDownFcn在UIaxe绘制曲线后失效的解决方案

一、问题描述

  在App Designer中绘制曲线时,常用UIAxes控件进行,但是在使用控件回调函数的ButtonDownFcn时,如果绘制了曲线,无法在已绘制了曲线的区域点击响应响应。

二、问题分析

  该问题的原因是,绘图前,ButtonDown响应的控件是UIAxes,所以鼠标点击这个控件的任何区域都可以响应;当绘制曲线后,出现的曲线会覆盖在该控件上面,因为点击曲线所在的区域时,鼠标相应的是曲线而不是UIAxes,所以UIAxes的ButtonDown无法被触发。

三、解决方案

有两种方式

  第一种方式是,编写当前曲线的ButtonDown函数,仿照其他的ButtonDown就可以;

  第二种方式是,将当前图形的句柄获取后,HitTest和PickableParts设置为不可;

  因为第二种很简单,所以写一下,大致思路是先在前面插入私有变量,设置hx;

 properties (Access = private)
        hx %绘制曲线的句柄变量
    end
  
  然后在回调函数里面输入下面代码
——————————
app.hx=plot(app.UIAxes,x,y,'-g');
app.hx.HitTest="off";
app.hx.PickableParts="none";

  

 

posted on 2022-08-13 14:56  挽年_Sonny  阅读(366)  评论(0编辑  收藏  举报

导航