如何从其他功能访问GUIDE图形上的控件?

时间:2011-04-05 19:44:34

标签: user-interface matlab handles matlab-guide

我正在使用GUIDE为我的GUI项目创建MATLAB

在我的一个按钮回调中,我调用了一个函数。

[Name]= otherFunction(inputVariable);

set(handles.name,'String',Name);

收到该函数的输出后,我将name label设置为Name的值。是否可以从函数内部设置?我该怎么做才能让该函数访问GUIData?

我尝试过从该函数中使用set / get,但我似乎无法让它工作。

或者,无论如何,我是否可以在全球范围内提供“句柄”?

1 个答案:

答案 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'); 
%]

但它比直接传递'句柄'慢得多。