获取/设置值

时间:2015-12-03 16:53:51

标签: matlab user-interface matlab-guide

我在MATLAB中遇到一个问题,我真的不知道可能是什么原因。我在MATLAB R2007b上使用GUIDE进行了GUI构建。在这个GUI中,我有一个用于输入文件名的编辑,然后用于保存一些数据。我使用编辑回调函数来测试文件名是否有效,方法是检查在空白时用get(hObject,'String')收到的字符串,然后如果键入的文件名是否存在则激活/取消激活加载按钮。字符串值也会保存到句柄结构中的变量中。

我现在面临的问题是,由于某些原因,如果我输入名称'default'或者输入的名称为空,则文件名的设置不起作用。当编辑中没有输入任何内容时,if (isempty(handles.fileName))块中的语句将被执行。当删除编辑中显示的字符串中的默认值时。您可以在下面找到回调函数的代码。

在OpeningFcn中:

    handles.fileName = 'default';

我的回调:

    function edit_fileName_Callback(hObject, eventdata, handles)
        handles.fileName = get(hObject,'String');
        if (isempty(handles.fileName))
            handles.fileName = 'default';
            disp(handles.fileName)
        end
        handles.fileName = strrep(handles.fileName,' ','_');
        set(hObject,'String',handles.fileName);

        if exist(['trajectories/' handles.fileName '.mat'],'file') == 2
            set(handles.pushbutton_load,'Enable','on')  
        else
            set(handles.pushbutton_load,'Enable','off')
        end

        guidata(hObject, handles);

有人知道为什么会出现这个问题吗?我现在已经在这个问题上停留了很长时间,还没有找到任何解决方案。

由于

编辑1:

我到目前为止发现的是get(hObject,'String')返回的值;和编码为handles.fileName = 'default'的字符串;不完全一样。我已将行disp(['fileName: ' handles.fileName])添加到回调中,它显示了与键入名称的区别或在代码中设置时:

自我输入:

    fileName:  test

按代码设置:

    fileName:  
    default

编码版本以某种方式为自己添加了换行符。

编辑2:

编辑1中描述的问题是由于disp命令错位。

编辑3 /解决方法: 似乎字符串'default'本身就是麻烦的原因。使用其他默认值时,它可以无缝地工作。此外,当在字段中键入'default'时,编辑本身将不再正常工作。似乎是一些错误。

0 个答案:

没有答案
相关问题