2025年Matlab中waitfor函数用法

Matlab中waitfor函数用法目录 语法 说明 示例 等待警告对话框关闭 等待属性值更改 等待属性更改为特定值 waitfor 阻止执行并等待条件 语法 waitfor obj waitfor obj propname waitfor obj propname propvalue 说明 waitfor obj

大家好,我是讯享网,很高兴认识大家。

目录

语法

说明

示例

等待警告对话框关闭

等待属性值更改

等待属性更改为特定值


        waitfor阻止执行并等待条件

语法

waitfor(obj) waitfor(obj,propname) waitfor(obj,propname,propvalue)

讯享网

说明

waitfor(obj) 可阻止语句的执行,直到指定的对象关闭(被删除)。当该对象不再存在时,waitfor 将返回并恢复语句的执行。如果该对象不存在,waitfor 将立即返回。

waitfor(obj,propname) 可指定对象的属性名称并阻止语句的执行,直到该属性值更改或该对象关闭。例如,waitfor(mytable,'Data') 会暂停语句执行,直到 mytable 的 'Data' 值更改。如果指定的属性名称无效,则执行仍会被阻止。

waitfor(obj,propname,propvalue) 可指定属性更改为何值时才恢复执行。如果指定的属性已等于propvalue,则waitfor会立即返回并恢复执行。

示例

等待警告对话框关闭

        创建一个警告对话框,并等待其关闭。在关闭对话框之前,waitfor后的命令不会执行。

讯享网mydlg = warndlg('This is a warning.', 'A Warning Dialog'); waitfor(mydlg); disp('This prints after you close the warning dialog.');

等待属性值更改

        在将数据添加到表之前,等待用户选中复选框。复选框的Value属性在未选中时为0,在选中时为 1


讯享网

t = uitable; c = uicontrol('Style','checkbox','String','Add data'); c.Position = [320 100 80 20]; waitfor(c,'Value'); t.Data = magic(5);

等待属性更改为特定值

        当用户停止编辑文本字段并点击图窗中的其他位置时,更改文本字段的背景颜色。当文本字段失去焦点时,Editing属性从 'on' 更改为 'off'

讯享网txt = text(.5,.5,'Edit text and click'); txt.Editing = 'on'; txt.BackgroundColor = [1 1 1]; waitfor(txt,'Editing','off'); txt.BackgroundColor = [1 1 0];

对象

        对象,例如 Axes、Text、Panel、ButtonGroup、Table 或UIControl对象。该对象可以是用figure或uifigure函数创建的Figure对象的子对象,也可以是Figure对象中容器的子对象。

propname - 属性名称

        属性名称,指定为字符向量或字符串标量。使用此参数指定obj的一个特定属性,须在此属性的值更改之后才能恢复执行。

propvalue - 属性值
与 propname 相关联的有效属性值

        属性值,指定为与propname关联的有效属性值。使用此参数可指示属性必须更改为哪个具体值后才恢复执行。

提示

  • 如果在waitfor执行过程中关闭图窗,将会发生错误,因为代码尝试访问不再存在的对象。可以通过在try/catch块中包含waitfor来处理错误。

算法

        通常,在使用了waitfor来阻止程序或Simulink® 模型继续执行的情况下,回调仍可以运行。例如,即使已调用waitfor,用于响应用户操作的回调(如按下鼠标按键)仍可以运行。

  waitfor也可用于阻止嵌套函数调用。例如,在waitfor函数正运行时执行的回调也可调用waitfor。

        如果UI组件的某个回调函数当前正在执行waitfor函数,则可以中断该回调,而不管该组件的 Interruptible 属性值设置为何值。

小讯
上一篇 2025-02-24 13:44
下一篇 2025-03-17 18:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/39466.html