永发信息网

Matlab GUI 鼠标触发事件求助!!!小白一只,还望各位大神相助,跪谢!!!

答案:2  悬赏:60  手机版
解决时间 2021-03-21 19:38
  • 提问者网友:兔牙战士
  • 2021-03-20 19:53
问题是这样的,我想通过四个按钮控制,触发不同的鼠标点击事件。比如有控钮1,2,3,4,我点击控钮1后,鼠标在图片上点击出现蓝叉点;我点击控钮2后,鼠标在图片上单击出现红叉点,以此类推。。。我现在想通过一个handles.Mode的数值变量来确定哪个按钮被触发,比如点击控钮1后,在其callback中添加handles.Mode=1,以此类推。然后在WindowsButtonDownfcn中,添加Switch handles.Mode,来确定是哪个case,以执行不同操作。但是现在发现,这样做后,虽然按按钮时handles.Mode值会改变,但是对于鼠标触发事件,好像捕捉不到它的值的变化,一直以最初Mode的值所代表的case进行执行,代码如下:
Switch handles.optMode
Case 1
If p(end,1)>0&&p(end,1)0&&p(end,2)handles.dataCount=handles.dataCount+1;
handles.linedata(handles.dataCount,:)=p(end,1:2);
set(handles.datenzahl,'String',num2str(handles.dataCount));
hold on;
plot(p(end,1),p(end,2),'b*');
guidata(hObject, handles);
end

case 2
if p(end,1)>0&&p(end,1)0&&p(end,2)handles.axesCount=handles.axesCount+1;
handles.axesdata(handles.axesCount,:)=p(end,1:2);
set(handles.punktzahl,'String',num2str(handles.axesCount));
hold on;
plot(p(end,1),p(end,2),'r+');
guidata(hObject, handles);
end
end
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-03-20 21:29
你究竟使用handles.Mode

还是handles.optMode来表示状态?

case 情况里面的代码,只有plot所用的符号不同
所以没有必要重复那么多代码吧

其他代码都可以写在swith case语句之外
只用在不同case值中写相应的plot语句就可以了
全部回答
  • 1楼网友:渡鹤影
  • 2021-03-20 23:09
期待看到有用的回答!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯