【问题标题】:Cannot call callback of the pushbutton of the uicontrol in matlabmatlab中无法调用uicontrol按钮的回调
【发布时间】:2014-01-10 09:55:11
【问题描述】:

我正在尝试在 GUI matlab 中创建一个按钮并在按下它时调用一个函数。此代码不起作用。我还尝试在 uicontrol 的最后一个参数中使用这些值: fnHi, 'fnHi', 'fnHi();'

代码是:

function [] = testui()
    function fnHi()
         fprintf('hi');
    end
    fnHiHandler = @fnHi;
    fnHiHandler(); fnHi();
    figure();
    uicontrol('Style', 'pushbutton', 'string', 'Hi', 'callback', fnHiHandler);
end

输出是:

testui()
hihiUndefined function or variable 'fnHiHandler'.

Error while evaluating uicontrol Callback

所以该函数有效,因为它被调用了两次,但是当我按下按钮时它崩溃了。 我不想使用多个文件。谢谢。

【问题讨论】:

    标签: matlab function callback uicontrol


    【解决方案1】:

    好的,我找到了答案。问题是 fnHi 应该接收两个参数,否则它会因为输入参数太多而崩溃。所以这段代码有效:

    function [] = testui()
        function fnHi(source,eventdata)
             fprintf('hi');
        end
        fnHiHandler = @fnHi;
        fnHiHandler(); fnHi();
        figure();
        uicontrol('Style', 'pushbutton', 'string', 'Hi', 'callback', fnHiHandler);
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多