chooseContextMenu
类: matlab.uitest.TestCase
命名空间: matlab.uitest
语法
说明
输入参数
testCase
— 测试用例
matlab.uitest.TestCase
对象
测试用例,指定为 matlab.uitest.TestCase
对象。
comp
— 具有上下文菜单的 UI 组件
UI 组件对象
具有上下文菜单的 UI 组件,指定为 UI 组件对象。上下文菜单必须包括 menuitem
所指定的菜单项。支持上下文菜单的组件包括图像、按钮、开关、坐标区和图窗。
支持的组件 | 典型的创建函数 |
---|---|
坐标区 | axes |
按钮 | uibutton |
复选框 | uicheckbox |
日期选择器 | uidatepicker |
分档旋钮 | uiknob |
下拉列表 | uidropdown |
编辑字段(数值、文本) | uieditfield |
超链接 | uihyperlink |
图像 | uiimage |
旋钮 | uiknob |
标签 | uilabel |
列表框 | uilistbox |
面板 | uipanel |
极坐标区 | polaraxes |
单选按钮 | uiradiobutton |
滑块 | uislider |
微调器 | uispinner |
状态按钮 | uibutton |
开关(跷板、滑块、拨动) | uiswitch |
文本区域 | uitextarea |
切换按钮 | uitogglebutton |
树节点 | uitreenode |
UI 坐标区 | uiaxes |
UI 图窗 | uifigure |
示例: uifigure
示例: axes('Position',[0.1 0.1 .6 .6])
示例: uispinner('Limits',[0 10],'Value',5)
menuitem
— 要选择的上下文菜单项
matlab.ui.container.Menu
对象
测试期间要选择的上下文菜单项,指定为 matlab.ui.container.Menu
对象。菜单项是使用 uimenu
函数创建的。
location
— 打开上下文菜单的位置
1×2 或 1×3 数值数组
在 UI 组件中打开上下文菜单的位置,指定为点的坐标。location
的形式取决于 UI 组件:
坐标区和 UI 坐标区 - 1×2 或 1×3 数值数组,其中包含 x、y 以及可选的 z 坐标。
极坐标区 - 1×2 数值数组,其中包含 θ 和 r 坐标。
面板和 UI 图窗 - 1×2 数值数组,其中包含 x 和 y 坐标。指定要右键点击的点的坐标,以组件左下角为起点测量(以像素为单位)。
示例: [32.5 13 0.25]
(UI 坐标区)
示例: [pi/2 0.5]
(极坐标区)
示例: [100 200]
(UI 图窗)
uit
— 目标表 UI 组件
matlab.ui.control.Table
对象
目标表 UI 组件,指定为 matlab.ui.control.Table
对象。表 UI 组件是用 uitable
函数创建的。
indices
— 表单元格的索引
1×2 向量
要右键点击的表单元格的索引,指定为 1×2 向量,行索引出现在列索引之前。
示例: [2 3]
示例
选择 UI 图窗的上下文菜单项
在 UI 图窗中创建一个具有两个菜单项的上下文菜单。通过将图窗的 ContextMenu
属性设置为 ContextMenu
对象,将该上下文菜单分配给图窗。要查看上下文菜单,请右键点击图窗窗口中的任意位置。
fig = uifigure; cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); fig.ContextMenu = cm;
创建一个交互式测试用例,并选择菜单项 m1
。上下文菜单和一个蓝点出现在图窗的中心。然后,表示编程选择手势的另一个蓝点出现在所选菜单项的中心,然后消失。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(fig,m1)
选择指定位置的上下文菜单项
在 UI 图窗中创建一个 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
。上下文菜单和一个蓝点出现在指定的坐标区坐标处。然后,表示编程选择手势的另一个蓝点出现在第二个菜单项的中心,然后消失。
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])
版本历史记录
在 R2020b 中推出R2024a: 当手势以编程方式展开树节点时节点展开回调将执行
为了更好地模拟必须展开树节点才能与嵌套节点交互的用户,当您使用 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)
R2024a: 在超链接上执行手势
您可以测试右键点击以在超链接组件中打开上下文菜单。
R2023a: 在标签上执行手势
您可以测试右键点击以在标签组件中打开上下文菜单。
R2021a: 在面板和表上执行手势
您可以测试右键点击以在面板和表 UI 组件中打开上下文菜单。
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)