waitforbuttonpress
等待点击或按键
说明
注意
在 App 设计工具和使用 uifigure
函数创建的 App 中,推荐使用 uiwait
并指定调用 uiresume
的 WindowButtonDownFcn
或 WindowKeyPressFcn
回调,而不推荐使用 waitforbuttonpress
,因为这样可以更好地控制 App 行为。有关详细信息,请参阅替代功能。
w = waitforbuttonpress
用于阻止语句执行,直到用户点击了鼠标按键或在当前图窗中按下某个键。
返回参量 w
可以具有以下值:
0
(如果检测到点击)1
(如果检测到按键动作)
当单独按下或作为组合键按下以下任何键时,waitforbuttonpress
函数不返回值:Ctrl、Shift、Alt、Caps Lock、Num Lock 或 Scroll Lock。
示例
提示
要确定按下的最后一个键、鼠标选择类型或当前图窗中鼠标指针的位置,请分别查询
Figure
属性CurrentCharacter
、SelectionType
和CurrentPoint
。
算法
使用 waitforbuttonpress
时要注意的一些重要内容:
如果为图窗了定义
WindowButtonDownFcn
,则它在waitforbuttonpress
返回值之前执行。除非您的代码是调用
try/catch
块中的waitforbuttonpress
函数,否则当用户通过点击窗口关闭按钮来关闭图窗时,waitforbuttonpress
函数会出错。
替代功能
在 App 设计工具和使用 uifigure
函数创建的 App 中,使用 uiwait
阻止语句执行。要在 App 用户点击鼠标按键或按下某个键时恢复程序执行,请指定调用 uiresume
的 WindowButtonDownFcn
或 WindowKeyPressFcn
回调。
例如,以下代码创建一个 UI 图窗,当用户在图窗窗口中点击时,该图窗将恢复程序执行。
fig = uifigure('WindowButtonDownFcn',@(src,event)uiresume(src));
调用 uiwait
以阻止程序执行,直到调用了 uiresume
或删除了图窗。创建一个 UIAxes
对象,并将图窗作为其父级。坐标区不出现。
uiwait(fig); ax = uiaxes(fig);
然后,点击图窗。程序继续执行,出现 UIAxes
对象。