0

我认为我的问题是我不知道如何访问guiel.hAX(3)我的按钮回调函数中的属性,我把kiddies = get(guiel.hAX(3),'Children'); 错误放在哪里:

Undefined variable "guiel" or class "guiel.hAX".

Error in showTF/callback_update_model (line 508)
    kiddies = get(guiel.hAX(3),'Children');

我的按钮回调嵌套函数:

function callback_update_model(~,~)
    vars.dropheight = str2num(get(edit(2),'String'));
    vars.armradius = str2num(get(edit(1),'String'));
    kiddies = get(guiel.hAX(3),'Children');
    delete(kiddies); 
    clear kiddies;
    set(guiel.tfPanel,'Visible','off','Position',cnst.tfPanelpos);
    set(guiel.hAX(1),'Position',cnst.axpos1);

    if ishandle(guiel.hAX(2)) 
    set(guiel.hAX(2),'Position',cnst.axpos2);
    end
    eval(get(guiel.hPB(4),'Callback'));
end

我在其他 mfile 中初始化变量

guiel.hAX(1) = -1;
guiel.hAX(2) = -1;
guiel.hAX(3) = -1;
guiel.tfPanel = -1;
...
    guiel.hAX(3) = axes('Parent',guiel.tfPanel,'Color',cnst.OFFWHITE,'Layer',...
                'top','Xlim',[0 1],'YLim',[0 1],'GridLineStyle','none','Units','Normalized',...
                'XTick',[],'YTick',[],'Box','off','Visible','off','Position',cnst.axpos3);
4

1 回答 1

1

要使数据在回调中可用,您可以将数据存储在图窗的 UserData 属性中。如果您的图形句柄是 h_fig,那么您将使用这样的代码来存储图形中的数据:

set(h_fig, 'UserData', guiel)

在您的回调中,您可以使用 gcbo 函数获取图形的句柄,然后提取用户数据,使用如下代码:

[~, h_fig] = gcbo;
guiel = get(h_fig, 'UserData')
于 2020-11-26T15:39:20.323 回答