从一个空白的 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');
%]
因此,您的代码中可能还有其他问题。
如果您不打算将“句柄”结构传递给“更改名称”函数(即全局可用的句柄),您可以这样做:
%% --- 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');
%]
但它比直接传递“句柄”要慢得多。