MATLAB中uiwait函数用法

本文详细介绍了MATLAB中的uiwait函数,包括其用于等待警报、模态消息对话框响应、按钮点击以及设置超时的应用示例,展示了如何通过这些功能实现程序暂停和用户交互控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

语法

说明

示例

等待对警报对话框的响应

等待对模态消息对话框的响应

等待按钮按下

等待超时


        uiwait函数功能是阻止程序执行并等待恢复。

语法

uiwait
uiwait(f)
uiwait(f,timeout)

说明

uiwait 阻止程序执行,直至调用了 uiresume 函数或删除了当前图窗 (gcf)。

uiwait 函数阻止 MATLAB® 和 Simulink® 程序执行。uiwait 还阻止 Simulink 模型的执行。

uiwait(f) 阻止程序执行,直至调用了 uiresume 函数或删除了图窗 f。该图窗可以是使用 figure 或 uifigure 函数创建的。

        使用 uiwait 函数和模态对话框可阻止程序执行并限制用户交互仅在对话框中进行,直到用户对它作出响应。

uiwait(f,timeout) 阻止程序执行,直至调用了 uiresume、删除了图窗或经过了 timeout 秒。

示例

等待对警报对话框的响应

        创建一个警报对话框并等待用户响应它,然后允许程序继续执行。

        在 UI 图窗中创建一个线图,并显示警报对话框。为对话框指定一个 CloseFcn 回调,该对话框在用户响应它时调用 uiresume 函数。等待用户在对话框中点击确定或将其关闭。当程序继续执行时,在命令行窗口中显示一条消息。

fig = uifigure;
fig.Position = [500 500 500 350]; 
ax = uiaxes(fig);
plot(ax,1:10)

uialert(fig,'A line plot was created in the axes.', ...
    'Program Information','Icon','info','CloseFcn','uiresume(fig)')

uiwait(fig)
disp('Program execution resumed')

如图所示:

等待对模态消息对话框的响应

        阻止程序继续执行,直到用户响应模态消息对话框。

        在图窗中创建一个线图并显示模态消息对话框。当用户点击确定或关闭对话框时,请等待对话框被删除。当程序继续执行时,在命令行窗口中显示一条消息。

f = figure;
plot(1:10)
msgfig = msgbox('Operation was completed successfully!','Success','modal');
uiwait(msgfig)
disp('Program execution resumed.');

如图所示:

等待按钮按下

        创建一个继续按钮,并等待用户按下它。然后显示一条消息。

        创建一个具有回调的普通按钮,当点击该普通按钮时会调用 uiresume 函数。等待用户点击继续或关闭图窗窗口。然后显示一条消息。

f = figure('Position',[500 500 400 300]);
c = uicontrol('String','Continue','Callback','uiresume(f)');
uiwait(f)
disp('Program execution has resumed');

如图所示:

等待超时

        创建一个在经过指定时间后会关闭的图窗。在 UI 图窗中创建一个线图。

fig = uifigure;
fig.Position = [500 500 500 350];
ax = uiaxes(fig);
plot(ax,1:10);

        创建一个 5 秒的超时。然后,在 try 模块内调用 close 函数来关闭图窗。如果图窗已关闭,catch 模块将阻止错误图窗句柄无效显示,并允许代码继续正常执行。

uiwait(fig,5)

try
close(fig)
catch
end

参数说明

f — 图窗对象

        图窗对象,指定为使用 figure 或 uifigure 函数创建的 Figure 对象。

timeout — 超时持续时间

        超时持续时间,指定为以秒为单位的数值。请指定大于或等于 1 的数字。

模态对话框

        模态对话框阻止用户在响应该对话框之前与其他 MATLAB 窗口进行交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值