【问题标题】:ButtonDownFcn with an argument in MatlabMatlab中带有参数的ButtonDownFcn
【发布时间】:2012-07-20 22:36:32
【问题描述】:

我有一个包含在下面的补丁,我想在补丁中添加一个额外的 ButtonDownFcn。当我执行第二个选项时,代码不起作用,我得到了许多输出参数。

原始补丁

for i = 1:10
    counter = counter+1;
    hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
    'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');']));
end

新的所需补丁

for i = 1:10
    counter = counter+1;
    hpatch(counter) = patch([x(17) x(18) x(1) x(1)],[y(17) y(18) y(1) y(1)],[0 0 0 0],...
    'Parent',hAx,'ButtonDownFcn', ['winopen(''' file(counter) ''');'],...
    'ButtonDownFcn', @saveClickData(counter));
end

这里是函数

saveClickData(counter)

应该是这样吗?:

saveClickData(source,event)

【问题讨论】:

    标签: function matlab user-interface event-handling callback


    【解决方案1】:

    试试:

    patch(X,Y,Z, 'ButtonDownFcn',{@saveClickData, counter})
    

    然后定义回调函数为:

    function saveClickData(src,evt,counter)
        winopen( file(counter) );
    
        %# do additional stuff..
    end
    

    确保将此函数定义为嵌套函数,以便它可以访问其父函数工作区,包括file 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多