great2001 发表于 2009-3-20 10:37

请教大家一个GUI中数据传输的问题

1、首先建立axes1和Push button键
2、然后点击Push button获取鼠标移动的实时坐标
   function pushbutton1_Callback(hObject, eventdata, handles)
      global mouse_posx mouse_posy
      axes(handles.axes1);
      set (gcf, 'WindowButtonMotionFcn', @mouseMove);
      %%%鼠标坐标不能传递过来
3、通过mouseMove函数实现图像中鼠标坐标的追踪(设移动过程中鼠标的实时坐标为)
   function mouseMove (object, eventdata)
      global mouse_posx mouse_posy
      mouse_pos = get (gca, 'CurrentPoint');
      mouse_posx=mouse_pos(1,1);
      mouse_posy=mouse_pos(1,2);%%%鼠标坐标能够实时采集
4、最后将获取的鼠标移动坐标传输到Push button中
现在在mouseMove中能够获取鼠标的实时坐标,但是在Push button中数据没有传递过去,在这两个函数中我都把鼠标坐标设为全局变量了,但是怎么没有实现数据传递呢?

zhenghui 发表于 2009-10-11 09:37

1、在主程序面板打开新的子面板的pushbutton控件的相应函数里面将你要传递的数据变量以如下格式传递给新的面板:新函数名(变量),这样就可以在另一个面板获得这个变量。
2、在新的fig中获得变量的方法如下:在新的fig中有个OpeningFcn函数,是自动生成的。其中有个变量varargin就是你要传递的变量,可以直接提取出来。
3、如果是多个变量需要传递,可以使用结构体的方式传递。例如:变量.a   变量.b   变量.c,取出时使用varargin{1},varargin{2},varargin{3}即可一一取出。
页: [1]
查看完整版本: 请教大家一个GUI中数据传输的问题