1

当我按下“X”关闭弹出窗口时,出现这样的错误。

这是我得到的错误:

Undefined function or variable 'PopupWindow'.

Error while evaluating UIControl Callback

这是我使用的代码:

function PopupWindow = alertBox(figg,position,showtext,titlebar);

    PopupWindow = uipanel('Parent',figg,'Units','pixels','Position',position,...
            'BackGroundColor',CYAN,'BorderType','beveledout','ButtonDownFcn','','Visible','on');

    uicontrol('Parent',PopupWindow,'Units','pixels','Style','PushButton','String','X',...
                    'Position',[position(3)-margin+1 position(4)-margin+1 margin-2 margin-2],'Callback',...
                    ['delete(PopupWindow);']); 
4

1 回答 1

2

您已将回调定义为字符向量,MATLAB 在PopupWindow未定义的基础工作区中对其进行评估。您可以改为使用匿名函数作为回调。

例如:

fig = figure();
a = uicontrol('Parent', fig, 'Style', 'Pushbutton', 'Units', 'Normalized', ...
              'Position', [0.1 0.1 0.8 0.8], 'String', 'Delete Figure', ...
              'Callback', @(h,e)delete(fig));

为我们提供了一个在单击按钮时将关闭的图形窗口:

耶

请注意,我已将匿名函数定义为接受和丢弃两个输入。这是因为图形对象回调默认接受 2 个输入,回调正在执行的对象的句柄和事件数据结构。在这个简单的例子中,我们不需要任何一个,但是在很多情况下会保留这些信息(例如按钮按下回调的事件数据)。

于 2017-09-19T20:06:54.780 回答