【发布时间】:2017-12-08 01:16:41
【问题描述】:
我正在尝试将参数传递给 GUIDE 生成的 GUI。这可行,但会引发警告。
inputTest('Passed In String')
警告:STR2FUNC“传入字符串”的输入无效 函数名。这将在未来的版本中产生错误。
我知道我过去曾将参数传递给 GUIDE GUI,但我不记得以前曾看到过此警告消息。但是,我对 Matlab 2016b 比较陌生,所以我可能不知道发生了一些变化。我在文档中没有找到任何内容。
警告出现在“初始化代码 - 请勿编辑”自动生成的部分中,并且仅在传入可选参数时发生。
这是 2016b 中的错误还是我错过了什么?
下面的最小示例。它是一个简单的 GUI,只有一个编辑框。
function varargout = inputTest(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @inputTest_OpeningFcn, ...
'gui_OutputFcn', @inputTest_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); % WARNING OCCURS HERE
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
function inputTest_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Fill the box if the string is passed in.
if nargin == 4
handles.edit1.String = varargin{1};
else
handles.edit1.String = 'Nothing Passed In';
end
guidata(hObject, handles);
function varargout = inputTest_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
【问题讨论】:
标签: matlab matlab-guide