MATLAB中waitforbuttonpress函数用法

目录

语法

说明

示例

按下按钮后创建坐标区


waitforbuttonpress函数的功能是等待点击或按键。

语法

cpp 复制代码
w = waitforbuttonpress

说明

w = waitforbuttonpress用于阻止语句执行,直到用户点击了鼠标按键或在当前图窗中按下某个键。

返回参数w可以具有以下值:

  • 0(如果检测到点击)

  • 1(如果检测到按键动作)

当单独按下或作为组合键按下以下任何键时,waitforbuttonpress 函数不返回值:Ctrl 、Shift 、Alt 、Caps Lock 、Num Lock 或 Scroll Lock。

注意

​在 App 设计工具和使用 uifigure 函数创建的 App 中,推荐使用 uiwait 并指定调用 uiresume 的 WindowButtonDownFcn 或 WindowKeyPressFcn 回调,而不推荐使用 waitforbuttonpress,因为这样可以更好地控制 App 行为。

示例

按下按钮后创建坐标区

创建一个图窗并调用 waitforbuttonpress 函数。然后,创建坐标区并注意它们不会出现。

cpp 复制代码
figure;
w = waitforbuttonpress;
axes;

点击图窗。现在,waitforbuttonpress 返回,执行继续,并显示坐标区。

提示

  • ​要确定按下的最后一个键、鼠标选择类型或当前图窗中鼠标指针的位置,请分别查询 Figure 属性 CurrentCharacter、SelectionType 和 CurrentPoint。

算法

使用 waitforbuttonpress 时要注意的一些重要内容:

  • 如果为图窗了定义 WindowButtonDownFcn,则它在 waitforbuttonpress 返回值之前执行。

  • ​除非代码是调用 try/catch 块中的 waitforbuttonpress 函数,否则当用户通过点击窗口关闭按钮来关闭图窗时,waitforbuttonpress 函数会出错。

替代功能

在 App 设计工具和使用 uifigure 函数创建的 App 中,使用 uiwait 阻止语句执行。要在 App 用户点击鼠标按键或按下某个键时恢复程序执行,请指定调用 uiresume 的 WindowButtonDownFcn 或 WindowKeyPressFcn 回调。

例如,以下代码创建一个 UI 图窗,当用户在图窗窗口中点击时,该图窗将恢复程序执行。

cpp 复制代码
fig = uifigure('WindowButtonDownFcn',@(src,event)uiresume(src));

调用 uiwait 以阻止程序执行,直到调用了 uiresume 或删除了图窗。创建一个 UIAxes 对象,并将图窗作为其父级。坐标区不出现。

cs 复制代码
uiwait(fig);
ax = uiaxes(fig);

然后,点击图窗。程序继续执行,出现 UIAxes 对象。

相关推荐
码农小河6610 小时前
基于PHP的电商后台蜜罐系统
开发语言·php
starzy199011 小时前
深入理解Scala柯里化函数:函数链式变换
开发语言·scala
ShineWinsu11 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
落羽的落羽11 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
总要学点什么12 小时前
第108篇:三维特效-图片轨迹线效果——把贴图滚成一串箭头,想用它的本色反而整条消失
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
starzy199016 小时前
深入理解Scala隐式值:编译期自动装配
开发语言·后端·scala
布莱克60517 小时前
Swift 条件语句详解:从 if 到 switch 的完整指南
开发语言·ssh·swift·switch·条件语句·guard·if
吴可可12317 小时前
ActiveX调用WScript.Shell原理揭秘
开发语言
晴天的雨.99218 小时前
【C++】继承篇
java·开发语言·c++
SomeOtherTime18 小时前
第 1 讲:内存布局与所有权解剖——栈帧、胖指针与“移动/拷贝”在汇编层面的真实面目
java·开发语言·汇编