matlab中无法调用uicontrol按钮的回调
Posted
技术标签:
【中文标题】matlab中无法调用uicontrol按钮的回调【英文标题】:Cannot call callback of the pushbutton of the uicontrol in matlab 【发布时间】: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
所以该函数有效,因为它被调用了两次,但是当我按下按钮时它崩溃了。 我不想使用多个文件。谢谢。
【问题讨论】:
【参考方案1】:好的,我找到了答案。问题是 fnHi 应该接收两个参数,否则它会因为输入参数太多而崩溃。所以这段代码有效:
function [] = testui()
function fnHi(source,eventdata)
fprintf('hi');
end
fnHiHandler = @fnHi;
fnHiHandler(); fnHi();
figure();
uicontrol('Style', 'pushbutton', 'string', 'Hi', 'callback', fnHiHandler);
end
【讨论】:
以上是关于matlab中无法调用uicontrol按钮的回调的主要内容,如果未能解决你的问题,请参考以下文章
用户更新后从 Matlab 编辑 uicontrol 中删除光标?
如何从matlab中用户定义的函数返回一个值,该函数的回调在uicontrol中指定