callback - 有没有办法将多个变量、结构、小部件数据等传递给 Octave 中的回调函数?
问题描述
我试图传递数据(主要是结构、来自 gui 元素的信息等),但我在这样做时遇到了一些麻烦。这是我的例子:
function []=myGUI()
fig=figure('position',[200 200 200 200]);
SecondS.edit1=uicontrol('style','edit','position',[25 60 80 20],'parent',fig,'string','enter 2nd');
SecondS.edit2=uicontrol('style','edit','position',[25 80 80 20],'parent',fig,'string','enter 1st');
SecondS.text=uicontrol('string','no result yet','style','text','position',[20 10 80 20],'parent',fig);
S.button=uicontrol('string','Giris','style','push','position',[30 30 40 20],'parent',fig,'Callback',{@myCallback,SecondS});
function []=myCallback(varargin)
S=varargin{3};
first=get(S.edit1,'string')
second=get(S.edit2,'string')
if isequal(first,'enes')&isequal(second,'gormez')
set(S.text,'string','both names match');
end
在上面的示例中,我可以传递结构“SecondS”,并且可以使用“GCBO”访问触发器小部件的信息。但是,如果我有另一个变量、不在 SecondS 中的小部件或完全不同的结构,我将无法传递数据。我怎样才能做到这一点而不必触摸我已经通过的信息。
非常感谢您的任何关注。
解决方案
在搜索了几个小时后,我在下面找到了我的问题的解决方案。
function myGUI()
fig=figure('position',[200 200 200 200]);
SecondS.edit1=uicontrol('style','edit','position',[25 60 80 20],'parent',fig,'string','enter 1st');
SecondS.edit2=uicontrol('style','edit','position',[25 80 80 20],'parent',fig,'string','enter 2nd');
SecondS.text=uicontrol('string','no result yet','style','text','position',[20 10 80 20],'parent',fig);
SecondS.button=uicontrol('string','Giris','style','push','position',[30 30 40 20],'parent',fig,'Callback',@myCallback);
guidata(fig,SecondS);
endfunction
function myCallback(hObject,eventdata)
S=guidata(hObject)
first=get(S.edit1,'string')
second=get(S.edit2,'string')
if isequal(first,'enes')&&isequal(second,'gormez')
set(S.text,'string','both names match');
end
endfunction
推荐阅读
- .net - 成功发布后 Clickonce 启动错误
- reactjs - 更改 URL 中的 ID 但页面未重新加载 React-router-dom 链接
- python - 将嵌套的字符串列表转换为字符串列表
- reactjs - 如何部署迷你站点?
- php - CKFinder 不显示缩略图问题
- flutter - Flutter - 参数类型'Object'不能分配给参数类型'Map
' - foreign-keys - TypeORM 官方关系示例不起作用
- javascript - 连接时如何检查错误的字符串值?
- multithreading - MPI RMA 中的多线程支持
- docker - 我经常从 docker 容器中无法访问主机