drag
类: matlab.uitest.TestCase
包: matlab.uitest
对 UI 组件执行拖动手势
说明
输入参数
testcase
— 测试用例的实例
matlab.uitest.TestCase
对象
测试用例的实例,指定为 matlab.uitest.TestCase
对象。
start
— 起始值
数值标量 | 1×2 或 1×3 数值数组
拖动手势的起始值,指定为数值标量或者 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 图窗)
stop
— 终止值
数值标量 | 1×2 或 1×3 数值数组
拖动手势的终止值,指定为数值标量或者 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 图窗)
type
— 鼠标选择类型
'normal'
(默认) | 'extend'
| 'alt'
鼠标选择类型,指定为 'normal'
、'extend'
或 'alt'
。此输入提供关于在组件中如何按下鼠标按键的信息。有关详细信息,请参阅 UI Figure 属性。
下表列出了可能的选择类型值以及这些值对应的动作。
值 | 对应的操作 |
---|---|
| 点击鼠标左键。 |
| Shift-点击鼠标左键。 |
| 点击鼠标右键。 |
数据类型: char
| string
示例
在两个值之间拖动旋钮
创建一个旋钮。
knob = uiknob;
创建一个交互式测试用例并在两个值之间拖动旋钮。当旋钮到达终止值时,表示编程拖动手势的蓝点出现,然后消失。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.drag(knob,13,42)
拖动滑块并验证终止值
创建一个最小值为 -237、最大值为 237、起始值为 7 的滑块。
slider = uislider('Limits',[-237 237],'Value',7);
创建一个交互式测试用例并验证滑块的初始值。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.verifyEqual(slider.Value,7)
Verification passed.
在两个值之间拖动滑块并验证最终值。由于框架模仿用户将组件移动到任意精确值的操作,因此最好使用容差来比较实际滑块值和预期滑块值。
val = 26.75;
tc.drag(slider,-val,val)
tc.verifyEqual(slider.Value,val,'AbsTol',0.1)
Verification passed.
在坐标区上的点之间拖动
在 UI 图窗中创建一个坐标区,然后在该坐标区中绘制一个线条。在此示例中,图将 x 轴和 y 轴的范围都设置为 [1 10]。
f = uifigure; ax = axes(f); plot(ax,1:10)
创建一个交互式测试用例,并从点 (3, 2) 拖动到点 (4, 2)。一个表示编程拖动手势的蓝点出现在起始值处,然后在到达终止值时消失。轴范围根据起始值和终止值之间的差进行更新。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.drag(ax,[3 2],[4 2])
验证拖动手势将 x 轴范围减少了一个单位。由于框架模拟用户操作组件,因此推荐使用容差来比较实际值和预期值。
tc.verifyEqual(ax.XLim,[0 9],'AbsTol',0.1)
Verification passed.
验证拖动更改了曲面图的视图
在 UI 图窗中创建一个坐标区,并使用 peaks
函数在该坐标区中绘制一个曲面。然后,调用 view
函数为坐标区保存相机视线的方位角和仰角。
f = uifigure; ax = axes(f); surf(ax,peaks) xlabel(ax,'X') ylabel(ax,'Y') zlabel(ax,'Z') [caz_before,cel_before] = view(ax);
创建一个交互式测试用例,并从点 (2, 2, -10) 拖动到点 (4, 4, 10)。一个表示编程拖动手势的蓝点出现在起始值处,然后在到达终止值时消失。曲面图的视图会随着拖动而更改。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.drag(ax,[2 2 -10],[4 4 10])
验证拖动手势更改了曲面图的视图。
[caz_after,cel_after] = view(ax); tc.verifyNotEqual([caz_after cel_after],[caz_before cel_before])
Verification passed.
使用指定的选择类型在 UI 组件上进行拖动
在 UI 图窗中创建一个坐标区,然后在该坐标区中绘制一个线条。
f = uifigure; ax = axes(f); plot(ax,1:10)
创建一个交互式测试用例,用鼠标右键点击在图窗上从点 (100, 200) 拖到点 (200, 300)。一个表示编程拖动手势的蓝点出现在起始值处,然后在到达终止值时消失。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.drag(f,[100 200],[200 300],'SelectionType','alt')
现在,用左键点击在坐标区上从点 (3, 2) 拖动到点 (4, 2)。轴范围根据起始值和终止值之间的差进行更新。
tc.drag(ax,[3 2],[4 2],'SelectionType','normal')
版本历史记录
在 R2018a 中推出MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)