drag
类: matlab.uitest.TestCase
命名空间: matlab.uitest
对 UI 组件执行拖动手势
说明
输入参数
测试用例,指定为 matlab.uitest.TestCase
对象。
拖动手势的起始值,指定为数值标量或者 1×2 或 1×3 数值数组。start
的形式取决于 UI 组件:
旋钮和滑块 - 组件范围内的数值标量。范围由组件的
Limits
属性定义。坐标区和 UI 坐标区 - 1×2 或 1×3 数值数组,其中包含 x、y 以及可选的 z 坐标。
UI 图窗 - 1×2 数值数组,其中包含 x 和 y 坐标。指定以组件左下角为起点的点的坐标。
示例: 20
(旋钮)
示例: [2.5 3 1.25]
(UI 坐标区)
示例: [100 200]
(UI 图窗)
拖动手势的终止值,指定为数值标量或者 1×2 或 1×3 数值数组。stop
的形式取决于 UI 组件:
旋钮和滑块 - 组件范围内的数值标量。范围由组件的
Limits
属性定义。坐标区和 UI 坐标区 - 1×2 或 1×3 数值数组,其中包含 x、y 以及可选的 z 坐标。
UI 图窗 - 1×2 数值数组,其中包含 x 和 y 坐标。指定以组件左下角为起点的点的坐标。
示例: 30
(旋钮)
示例: [5 3 2.25]
(UI 坐标区)
示例: [200 300]
(UI 图窗)
鼠标选择类型,指定为 'normal'
、'extend'
或 'alt'
。此输入提供关于在组件中如何按下鼠标按键的信息。有关详细信息,请参阅 UI Figure Properties。
下表列出了可能的选择类型值以及这些值对应的动作。
值 | 对应的操作 |
---|---|
| 点击鼠标左键。 |
| Shift-点击鼠标左键。 |
| 点击鼠标右键。 |
数据类型: char
| string
示例
创建一个旋钮。
knob = uiknob;
创建一个交互式测试用例并在两个值之间拖动旋钮。当旋钮到达终止值时,表示编程拖动手势的蓝点出现,然后消失。
testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.drag(knob,13,42)
创建一个最小值为 -237、最大值为 237、起始值为 7 的滑块。
slider = uislider("Limits",[-237 237],"Value",7);
创建一个交互式测试用例并验证滑块的初始值。
testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.verifyEqual(slider.Value,7)
Verification passed.
在两个值之间拖动滑块并验证最终值。由于框架模仿用户将组件移动到任意精确值的操作,因此最好使用容差来比较实际滑块值和预期滑块值。
val = 26.75;
testCase.drag(slider,-val,val)
testCase.verifyEqual(slider.Value,val,"AbsTol",0.1)
Verification passed.
在背景颜色根据鼠标选择类型而变化的图窗上测试拖动手势。
创建一个 UI 图窗,当使用非默认鼠标选择类型在该图窗上拖动时,其背景颜色会发生变化。要对图窗行为进行编程,请通过指定其 回调属性为图窗创建一个窗口内按键移动回调。请参阅此示例末尾的回调函数 changeColor
的代码,该函数用于根据选择类型更改背景颜色。
fig = uifigure(Color="white", ... WindowButtonMotionFcn=@(src,~)changeColor(src));
创建一个交互式测试用例,并使用它来验证图窗背景颜色是白色,即 [1 1 1]
。
testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.verifyEqual(fig.Color,[1 1 1])
Verification passed.
测试用鼠标右键点击在图窗上从点 (100, 200) 拖到点 (200, 300) 的拖动手势。该手势将图窗的 SelectionType
属性设置为 'alt'
。该手势还执行回调,该回调基于 SelectionType
属性值设置图窗背景颜色。
testCase.drag(fig,[100 200],[200 300],"SelectionType","alt")
测试背景颜色现在是否为绿色,即 [0 1 0]
。测试通过。
testCase.verifyEqual(fig.Color,[0 1 0])
Verification passed.
回调函数
以下代码显示此示例中使用的回调函数。该函数查询图窗的 SelectionType
属性以识别鼠标选择类型。
function changeColor(fig) switch fig.SelectionType case 'extend' % using shift-click to drag fig.Color = "red"; case 'alt' % using right-click to drag fig.Color = "green"; end end
版本历史记录
在 R2018a 中推出您可以在使用任何测量单位的 UI 图窗上指定手势的位置。在以前的版本中,该方法仅允许您为 Units
属性设置为 "pixels"
的图窗指定坐标。
不再支持在具有活动右 y 轴的坐标区或 UI 坐标区上指定手势的位置。如果您的图有两个 y 轴,请在执行手势之前激活与左 y 轴关联的一侧。在以前的版本中,当您在右侧处于活动状态的坐标区或 UI 坐标区上指定位置时,App 测试框架会将该位置解释为相对于左 y 轴,这可能导致手势出现在意外位置或失败。
您可以在针对 UI 图窗的测试中执行拖动手势。此外,当您在坐标区、UI 坐标区或 UI 图窗组件上测试拖动手势时,您可以指定鼠标选择类型。要指定鼠标选择类型,请使用 type
输入参量。
您可以在针对坐标区和 UI 坐标区的测试中执行拖动手势。当您在坐标区或 UI 坐标区组件上测试拖动手势时,App 测试框架会模拟用户操控组件,并根据开始值和结束值之间的差异调整坐标区范围。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)