我想传递queryname,这是一个字符串,类似于图像的完整路径到另一个文件do_demo_2。
function query_browse_Callback(hObject, eventdata, handles)
[filename, pathname] = ...
uigetfile({'*.jpg';'*.png';'*.tif'},'Select Query Image');
queryname=[pathname filename];
function retrieve_Callback(hObject, eventdata, handles)
do_demo_2;
我应该如何修改这个以及do_demo_2文件中的第一行是什么?
答案 0 :(得分:1)
为了在GUI中传递数据,最方便的是将数据存储在handles
- 结构中。选择版本1或版本2(它们不兼容)。
function query_browse_Callback(hObject, eventdata, handles)
[filename, pathname] = ...
uigetfile({'*.jpg';'*.png';'*.tif'},'Select Query Image');
queryname=[pathname filename];
%# store queryname, version 1
handles.queryname = queryname;
guidata(hObject,handles);
%# store queryname, version 2
setappdata(handles.YOURGUINAME,'queryname',queryname)
function retrieve_Callback(hObject, eventdata, handles)
%# retrieve queryname, version 1
queryname = handles.queryname;
%# retrieve queryname, version 2
queryname = getappdata(handles.YOURGUINAME,'queryname');
确保在GUI的Opening_Fcn
中初始化存储的信息:
%# version 1
handles.queryname = '';
guidata(hObject,handles);
%# version 2
setappdata(handles.YOURGUINAME,'queryname','');
这样,您可以检查retrieve_callback
queryname
是否为空,并告诉用户先浏览文件名。
如果您希望将queryname的内容传递给其他函数,则将其作为输入参数传递:do_demo_2(queryname)
。确保该功能接受输入。