MATLAB 帮助中心
类: matlab.uitest.TestCase 命名空间: matlab.uitest
在上下文菜单项上执行选择手势
chooseContextMenu(testCase,comp,menuitem)
chooseContextMenu(testCase,comp,menuitem,location)
chooseContextMenu(testCase,uit,menuitem,indices)
chooseContextMenu(testCase,comp,menuitem) 在 UI 组件 comp 的中心执行右键点击以打开上下文菜单。该方法随后会选择指定的 menuitem。
testCase
comp
menuitem
示例
chooseContextMenu(testCase,comp,menuitem,location) 指定在组件中打开上下文菜单的位置。您只能基于五个可用组件来指定位置:坐标区、UI 坐标区、极坐标区、面板和 UI 图窗。
location
chooseContextMenu(testCase,uit,menuitem,indices) 右键点击表 UI 组件 uit 中由 indices 指定的单元格。该方法随后会选择指定的 menuitem。
uit
indices
全部展开
matlab.uitest.TestCase
测试用例,指定为 matlab.uitest.TestCase 对象。
具有上下文菜单的 UI 组件,指定为 UI 组件对象。上下文菜单必须包括 menuitem 所指定的菜单项。支持上下文菜单的组件包括图像、按钮、开关、坐标区和图窗。
axes
uibutton
uicheckbox
uidatepicker
uiknob
uidropdown
uieditfield
uihyperlink
uiimage
uilabel
uilistbox
uipanel
polaraxes
uiradiobutton
uislider
uispinner
uiswitch
uitextarea
uitogglebutton
uitreenode
uiaxes
uifigure
示例: uifigure
示例: axes('Position',[0.1 0.1 .6 .6])
axes('Position',[0.1 0.1 .6 .6])
示例: uispinner('Limits',[0 10],'Value',5)
uispinner('Limits',[0 10],'Value',5)
matlab.ui.container.Menu
测试期间要选择的上下文菜单项,指定为 matlab.ui.container.Menu 对象。菜单项是使用 uimenu 函数创建的。
uimenu
在 UI 组件中打开上下文菜单的位置,指定为点的坐标。location 的形式取决于 UI 组件:
坐标区和 UI 坐标区 - 1×2 或 1×3 数值数组,其中包含 x、y 以及可选的 z 坐标。
极坐标区 - 1×2 数值数组,其中包含 θ 和 r 坐标。
面板 - 1×2 数值数组,其中包含 x 和 y 坐标。指定以组件左下角为起点测量的点的坐标(以像素为单位)。
UI 图窗 - 1×2 数值数组,其中包含 x 和 y 坐标。指定以组件左下角为起点的点的坐标。
示例: [32.5 13 0.25](UI 坐标区)
[32.5 13 0.25]
示例: [pi/2 0.5](极坐标区)
[pi/2 0.5]
示例: [100 200](UI 图窗)
[100 200]
matlab.ui.control.Table
目标表 UI 组件,指定为 matlab.ui.control.Table 对象。表 UI 组件是用 uitable 函数创建的。
uitable
要右键点击的表单元格的索引,指定为 1×2 向量,行索引出现在列索引之前。
示例: [2 3]
[2 3]
Sealed
true
要了解方法的属性,请参阅方法属性。
在 UI 图窗中创建一个具有两个菜单项的上下文菜单。通过将图窗的 ContextMenu 属性设置为 ContextMenu 对象,将该上下文菜单分配给图窗。要查看上下文菜单,请右键点击图窗窗口中的任意位置。
ContextMenu
fig = uifigure; cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); fig.ContextMenu = cm;
创建一个交互式测试用例,并选择菜单项 m1。上下文菜单和一个蓝点出现在图窗的中心。然后,表示编程选择手势的另一个蓝点出现在所选菜单项的中心,然后消失。
m1
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(fig,m1)
在 UI 图窗中创建一个 Axes 对象。将一个具有两个菜单项的上下文菜单分配给 Axes 对象。
Axes
fig = uifigure; ax = axes(fig); cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); ax.ContextMenu = cm;
创建一个交互式测试用例,并通过打开坐标区 (0.85,0.2) 坐标处的上下文菜单来选择菜单项 m2。上下文菜单和一个蓝点出现在指定的坐标区坐标处。然后,表示编程选择手势的另一个蓝点出现在第二个菜单项的中心,然后消失。
m2
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(ax,m2,[0.85 0.2]);
创建一个包含混合使用的不同数据类型的表 UI 组件。然后,将一个包含两个菜单项的上下文菜单分配给该表。
fig = uifigure; uit = uitable(fig); d = {'Male',52,true;'Male',40,true;'Female',25,false}; uit.Data = d; cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); uit.ContextMenu = cm;
创建一个交互式测试用例,并通过在索引为 (1,1) 的表单元格中打开上下文菜单来选择菜单项 m2。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(uit,m2,[1 1])
您可以在使用任何测量单位的 UI 图窗上指定手势的位置。在以前的版本中,该方法仅允许您为 Units 属性设置为 "pixels" 的图窗指定坐标。
Units
"pixels"
不再支持在具有活动右 y 轴的坐标区或 UI 坐标区上指定手势的位置。如果您的图有两个 y 轴,请在执行手势之前激活与左 y 轴关联的一侧。在以前的版本中,当您在右侧处于活动状态的坐标区或 UI 坐标区上指定位置时,App 测试框架会将该位置解释为相对于左 y 轴,这可能导致手势出现在意外位置或失败。
为了更好地模拟必须展开树节点才能与嵌套节点交互的用户,当您使用 chooseContextMenu 方法在折叠的树节点上执行手势时,节点展开回调将执行。您可以通过设置树的 NodeExpandedFcn 属性来指定该回调。
chooseContextMenu
NodeExpandedFcn
例如,以编程方式为嵌套的树节点选择菜单项,并显示任何以编程方式展开的节点的文本。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); cm = uicontextmenu(fig); m1 = uimenu(cm,"Text","Menu1"); m2 = uimenu(cm,"Text","Menu2"); child2.ContextMenu = cm; testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.chooseContextMenu(child2,m1)
如果您不想执行该回调,而是想保留 R2023b 及更早版本中的行为,请在执行手势之前展开树节点。在以下代码中,回调不执行。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); cm = uicontextmenu(fig); m1 = uimenu(cm,"Text","Menu1"); m2 = uimenu(cm,"Text","Menu2"); child2.ContextMenu = cm; testCase = matlab.uitest.TestCase.forInteractiveUse; expand(parent) testCase.chooseContextMenu(child2,m1)
您可以测试右键点击以在超链接组件中打开上下文菜单。
您可以测试右键点击以在标签组件中打开上下文菜单。
您可以测试右键点击以在面板和表 UI 组件中打开上下文菜单。
choose
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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处