如何调用Matlab的工具栏事件处理程序

时间:2017-01-17 17:42:30

标签: matlab user-interface matlab-figure matlab-guide

在Matlab中使用Guide创建带工具栏的GUI时,您可以选择使用预定义的工具栏元素,例如:打开文件,放大和缩小... 将它们拖放到GUI中,当您单击其中一个图标时,会执行一些自动生成的回调。 有没有办法自己从代码中执行这些自动生成的回调?我想在GUI菜单中包含这些工具栏元素提供的一些功能。

1 个答案:

答案 0 :(得分:1)

您可以在“工具属性”部分的工具栏项目中指定自定义标签。此标记名称表示handles结构中包含工具栏工具句柄的字段。

enter image description here

然后,您可以通过ClickedCallback属性获取指定的回调,然后使用hgfeval

以编程方式执行回调
function mycallback(hObject, eventdata, handles)
    cback = get(handles.mypushtool, 'ClickedCallback');
    hgfeval(cback)
end

如果您只想将回调复制到菜单,则可以修改OpeningFcn,以便只需将工具的ClickedCallback属性复制到菜单

function myGUI_OpeningFcn(hObject, eventdata, handles)
    set(handles.mymenuitem, 'Callback', get(handles.mytoolbaritem, 'ClickedCallback'));
end