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

How to call Matlab's Toolbar Event Handlers

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

您可以将自定义标签分配给 "Tool Properties" 部分中的工具栏项目。此标记名称指示 handles 结构中包含工具栏工具句柄的字段。

然后您可以通过 ClickedCallback property, and then execute the callback programmatically using 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