1

我想将 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 文件中的第一行是什么?

4

1 回答 1

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');

确保在Opening_Fcn您的 GUI 中初始化存储的信息:

%# version 1
handles.queryname = '';
guidata(hObject,handles);

%# version 2
setappdata(handles.YOURGUINAME,'queryname','');

这样,您可以检查retrieve_callback是否queryname为空并告诉用户首先浏览文件名。

然后,如果您想将 queryname 的内容传递给不同的函数,请将其作为输入参数传递:do_demo_2(queryname). 确保函数接受输入。

于 2013-03-16T11:54:50.703 回答