2

我已经使用 GUIDE 生成了一个 GUI,这两个我都很陌生。
我有一个带有浏览按钮的文本框,单击它会打开一个文件选择对话框,我很好。
我想知道的是如何让文本框中的文本在我完成浏览后更新以显示文件路径和名称。

% --- Executes during object callback
function filePathText_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.
function filePathText_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in filePathBrowse.
function filePathBrowse_Callback(hObject, eventdata, handles)

[fileName,pathName] = uigetfile('*.mxwl','Select Maxwell file:');
% Selection of the Maxwell file for which the script is written
if fileName ==0
    error('User aborted.')
end

handles.fileName = fileName;
% location of the results file (for obtaining variable and parameter names)

guidata(hObject,handles)

据我所知,这不能很好地工作的部分原因是每个函数都有 hObject、eventdata 和句柄都具有相同的名称,所以我不能简单地filePathText_CreateFcn用某种if来重写文本,因为那只会更改“浏览”按钮中的文本。

我意识到这可能是我在这里缺少的一些非常简单的东西,但正如我所说,我对 GUI 构建很陌生,所以非常感谢任何帮助!


PS
还有什么更好的是,能够在该框中添加文件路径并让其他所有内容(文件名、路径名等)以相反的方向更新,但我对此更加不确定。

4

1 回答 1

2

1.您需要文本框的句柄。这里有一个简单的方法:函数 filePathBrowse_Callback(..) 已经得到了句柄结构,你会(可能)在这里找到它:

handles.filePathText

如果不是这种情况,您必须查找名称 - 例如在 GUIDE 中通过检查其属性 - 或者您可以使用findall搜索它。

2.只需设置文本框的字符串属性:

set(handles.filePathText, 'String', [pathName filename])
于 2013-11-11T14:05:23.233 回答