[英]How to call a callback function in a MATLAB gui from another gui?
我有两个用GUIDE制作的GUI。 我正在尝试从GUI2调用GUI1中的按钮回调函数。 这是GUI2中的代码
set(0,'showHiddenHandles','on');
hfig = gcf;
m_handles = guidata(hfig); % handles in GUI1
set(m_handles.show_status , 'String' , ...
[script sprintf('\n') s_response]); % this line works
set(m_handles.add_note , 'Enable' , 'off'); % this line also works
add_note_Callback(m_handles.add_note, eventdata, m_handles); % but this does not work!
这是我为类型为“ struct”的输入参数获取未定义函数“ add_note_Callback”的错误。 任何帮助将不胜感激。
可能的解决方案如下。
假设您的GUI 1定义如下:
filename
( .m
和.fig
文件的名称)= master_gui
tag
属性定义为“ figure1” handlevisibility
属性设置on
callback
: plot_something_Callback
然后,例如,要从GUI 2中的pushbutton
调用GUI 1中定义的plot_something_Callback
因此,在GUI 2 pushbutton callback
您可以编写以下代码:
% Get the GUI 1 obj
g_m=findobj('tag','figure1')
% Get GUI handles
gd_m=guidata(g_m);
% Call GUI 1 callback from GUI 2 callback
% master_gui('plot_something_Callback',gd_m.plot_something,[],g_m)
master_gui('plot_something_Callback',gd_m.plot_something,[],gd_m)
注意,GUI 1应该是打开的。
修改代码 GUI 1回调调用中的最后一个参数是gd_m
,这是GUI 1 handles
抱歉,该错误(我最初发布的代码有效,因为GUI 1回调未使用GUI 1句柄)
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.