我正在使用GUIDE
为我的GUI
项目创建MATLAB
。
在我的一个按钮回调中,我调用了一个函数。
[Name]= otherFunction(inputVariable);
set(handles.name,'String',Name);
收到该函数的输出后,我将name label设置为Name的值。是否可以从函数内部设置?我该怎么做才能让该函数访问GUIData?
我尝试过从该函数中使用set / get,但我似乎无法让它工作。
或者,无论如何,我是否可以在全球范围内提供“句柄”?
答案 0 :(得分:3)
从空白GUI开始,只需向其添加一个按钮(标记为'btnTest'),以下代码可以正常工作:
%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
changeName(handles);
%]
%% --- Inner function
function [] = changeName(handles)
%[
set(handles.btnTest, 'String', 'toto');
%]
所以你的代码可能还有其他问题。
如果您不打算将'handles'结构传递给'changeName'函数(即全局可用句柄),您可以这样做:
%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
changeName();
%]
%% --- Inner function
function [] = changeName()
%[
handles = guihandles(); % recover handles for current figure
set(handles.btnTest, 'String', 'toto');
%]
但它比直接传递'句柄'慢得多。