如何在MATLAB的应用程序设计器中使用waitfor
或uiwait
?这些函数只适用于图形界面(GUIDE),而不适用于应用程序设计器窗口。我该如何在应用程序设计器中实现相同的行为?我需要等待关闭第二个窗口后才能继续主窗口的代码。
如何在MATLAB的应用程序设计器中使用waitfor
或uiwait
?这些函数只适用于图形界面(GUIDE),而不适用于应用程序设计器窗口。我该如何在应用程序设计器中实现相同的行为?我需要等待关闭第二个窗口后才能继续主窗口的代码。
waitfor(second_window, 'close');
实际上并不等待图形窗口关闭。给waitfor
指定第二个输入参数告诉MATLAB阻塞执行,直到指定的属性发生变化或对象被删除。'close'
与该图形的CloseRequestFcn
匹配。UI图形对象没有此属性,因此会出现错误。waitfor
而不带第二个输入可以实现所需的行为。
我不确定在MATLAB文档中是否明确说明了这一点,但其功能等效于MATLAB的inputParser
类的PartialMatching
属性:
接受参数名称的前导子字符串作为输入,并将值与该参数匹配。如果输入字符串有多个可能的匹配项,则MATLAB会抛出错误。
waitfor
和uiwait
都适用于uifigure
对象。 - sco1second_window;
这段代码会打开第二个窗口。之后使用了waitfor(second_window, 'close');
来等待第二个窗口关闭。但是第二个函数在运行后返回了错误:error using waitfor, invalid proporty
。 - Eghbalclose
,但是如您在waitfor
文档中所见,我们可以在 GUIDE 中使用close
作为选项。因此,在 app designer 窗口中没有任何close
属性吗? - Eghbal