uistack
对 UI 组件的视图堆叠重新排序
说明
示例
将按钮置于顶层
创建一个 UI 图窗,其中包含一个按钮和一个仪表。由于先创建按钮后创建仪表,因此仪表会出现在顶层并覆盖按钮。
fig = uifigure; btn = uibutton(fig,"Text","Go","Position",[148 148 25 25]); g = uigauge(fig);
通过将按钮移至层叠的顶部,将按钮置于顶层。
uistack(btn,"top");
更改面板的前后顺序
创建一个 UI 图窗,其中包含五个具有不同标题和背景颜色的重叠面板。
fig = uifigure; a = uipanel(fig,"Title","A","BackgroundColor","white","Position",[200 200 170 150]); b = uipanel(fig,"Title","B","BackgroundColor","cyan","Position",[100 170 170 150]); c = uipanel(fig,"Title","C","BackgroundColor","green","Position",[50 90 170 150]); d = uipanel(fig,"Title","D","BackgroundColor","yellow","Position",[140 140 170 150]); e = uipanel(fig,"Title","E","BackgroundColor","magenta","Position",[170 110 170 150]);
在 UI 图窗中列出子级。
fig.Children
ans = 5x1 Panel array: Panel (E) Panel (D) Panel (C) Panel (B) Panel (A)
通过将面板 a
和 c
在层叠中相对于当前位置上移一层,对面板重新排序。
comp = [a c]; uistack(comp)
再次列出子级项。更改面板的层叠顺序也会更改 UI 图窗中子级项的顺序。
fig.Children
ans = 5x1 Panel array: Panel (E) Panel (C) Panel (D) Panel (A) Panel (B)
对树中的节点重新排序
创建一个 UI 图窗,它包含具有两个顶层节点的树,其中每个节点有两个子节点。
fig = uifigure; t = uitree(fig,"Position",[20 20 150 150]); category1 = uitreenode(t,"Text","Vegetables"); category2 = uitreenode(t,"Text","Fruits"); n1 = uitreenode(category1,"Text","Cucumber"); n2 = uitreenode(category1,"Text","Carrot"); n3 = uitreenode(category2,"Text","Apple"); n4 = uitreenode(category2,"Text","Banana");
展开树中的所有节点。
expand(t)
将 Fruits 节点移至层叠的顶部。该节点会相对于共享一个父节点的所有其他节点重新排序。以下命令将 Fruits 节点及其所有子节点移至 Vegetables 节点上方。
uistack(category2,"top")
重新排列 Fruits 节点的子节点。将 Apple 节点向下移动一层,移至 Banana 节点下方。
uistack(n3,"down",1)
对选项卡组中的选项卡重新排序
创建一个包含选项卡组(其中包含五个选项卡)的 UI 图窗。
fig = uifigure; tg = uitabgroup(fig,"Position",[20 20 450 300]); t1 = uitab(tg,"Title","Survey Questions"); t2 = uitab(tg,"Title","Demographic"); t3 = uitab(tg,"Title","Participants"); t4 = uitab(tg,"Title","Data"); t5 = uitab(tg,"Title","Plot");
将 Data 选项卡移至层叠的底部。该选项卡显示在最右侧。
uistack(t4,"bottom")
将 Survey Questions 选项卡向右移动两层。
uistack(t1,"down",2)
输入参数
comp
— UI 组件
单个对象 | 对象向量
要重新排序的 UI 组件,指定为单个对象或对象向量,例如 Figure
、Panel
、Tab
、Button
或 TreeNode
对象。使用此参量指定要相对于共享同一父对象的其他对象重新排序的 UI 组件。
如果将 comp
指定为由 UI 组件组成的向量,则:
向量中的每个组件必须共享一个父组件。
向量必须为父容器的子容器的一个严格子集。例如,如果一个图窗有六个子级 UI 组件,则向量
comp
可以有不超过五个元素。
moveto
— 位置
"up"
(默认) | "down"
| "top"
| "bottom"
移动 UI 组件的位置,指定为下表中的值之一。
值 | 描述 |
---|---|
"up" | 将 UI 组件向上移动 step 层(默认移动一层)。 |
"down" | 将 UI 组件向下移动 step 层(默认移动一层)。 |
"top" | 将 UI 组件移至其层叠的顶部。 |
"bottom" | 将 UI 组件移至其层叠的底部。 |
step
— 要移动的层数
1 (默认) | 正整数
在堆叠中向上或向下移动 UI 组件的层数,指定为正整数。仅当 moveto
指定为 "up"
或 "down"
时,才使用此参量。
如果指定的层数大于可移动的层级数,则 UI 组件移至堆叠的顶部或底部。例如,如果您有五个层级并指定组件向下移动六层,则该组件移至堆叠的底部。
版本历史记录
在 R2006a 之前推出R2023a: 更改 UI 图窗中 UI 组件的层叠顺序
现在,您可以更改使用 uifigure
函数创建的图窗中 UI 组件和容器的层叠顺序。以前,uistack
仅支持使用 figure
函数创建的图窗中的 UI 组件。
R2023a: 对于菜单、工具栏、按钮工具和切换工具有不同的堆叠行为
当您修改菜单、工具栏、按钮工具和切换工具的层叠顺序时,其行为与以前的版本不同。例如,从 R2023a 开始,调用 uistack(comp,"up")
会有以下行为:
以图窗为父级的菜单项 - 菜单项在菜单栏中向左移动一个位置。以前,菜单项向右移动一个位置。
以上下文菜单为父级的菜单项 - 菜单项在上下文菜单中上移一个位置。以前,菜单项下移一个位置。
工具栏 - 工具栏在图窗中的工具栏集合中上移一个位置。以前,工具栏下移一个位置。
按钮工具和切换工具 - 按钮工具或切换工具在工具栏中向左移动一个位置。以前,按钮工具或切换工具向右移动一个位置。
如果您的代码使用 uistack
来修改菜单、工具栏、按钮工具或切换工具的堆叠顺序,请对代码进行以下更新以保留以前的行为。
R2022b 或更早版本中的原始代码 | R2023a 中更新后的代码 |
---|---|
uistack(comp,"top") | uistack(comp,"bottom") |
uistack(comp,"up",step) | uistack(comp,"down",step) |
uistack(comp,"bottom") | uistack(comp,"top") |
uistack(comp,"down",step) | uistack(comp,"up",step) |
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)