uibuttongroup
创建用于管理单选按钮和切换按钮的按钮组
说明
bg = uibuttongroup
在当前图窗中创建一个按钮组,并返回 ButtonGroup
对象。如果没有可用的图窗,MATLAB® 将调用 figure
函数创建一个图窗。
bg = uibuttongroup(___,
使用一个或多个名称-值参数指定 Name,Value
)ButtonGroup
属性。可将此选项与上述语法中的任何输入参数组合一起使用。按钮组属性值略有不同,具体取决于该 App 是使用 figure
还是 uifigure
函数创建的。有关详细信息,请参阅名称-值参数。
示例
创建切换按钮组
在 UI 图窗中创建一个按钮组。向该按钮组添加三个切换按钮。默认情况下,第一个按钮处于选中状态。
fig = uifigure; bg = uibuttongroup(fig,"Position",[137 113 123 85]); b1 = uitogglebutton(bg,"Text","Button 1","Position",[10 50 100 22]); b2 = uitogglebutton(bg,"Text","Button 2","Position",[10 28 100 22]); b3 = uitogglebutton(bg,"Text","Button 3","Position",[10 6 100 22]);
点击按钮 3。按钮组通过将第一个按钮显示为取消选中、将第三个按钮显示为选中来管理切换按钮选择。
编写响应以下操作的代码:选择单选按钮
当用户从按钮组中选择一个不同单选按钮时,在 MATLAB 命令行窗口中显示上一次的按钮选择和当前的按钮选择。
在 MATLAB 编辑器中创建一个脚本文件,该文件创建一个具有三个单选按钮的按钮组。为该按钮组定义 SelectionChangedFcn
回调函数,当 App 用户更改按钮组选择时,该函数将显示以前和当前选择的单选按钮的文本。
fig = uifigure; bg = uibuttongroup(fig, ... "SelectionChangedFcn",@displaySelection, ... "Position",[137 113 123 85]); r1 = uiradiobutton(bg, ... "Text","Option 1", ... "Position",[10 50 100 22]); r2 = uiradiobutton(bg, ... "Text","Option 2", ... "Position",[10 28 100 22]); r3 = uiradiobutton(bg, ... "Text","Option 3", ... "Position",[10 6 100 22]); function displaySelection(src,event) disp(['Previous: ' event.OldValue.Text]); disp(['Current: ' event.NewValue.Text]); end
运行脚本并更改按钮选择。命令行窗口中将显示上一个选择和当前选择。
有关回调的详细信息,请参阅Create Callbacks for Apps Created Programmatically。
可滚动按钮组
Scrollable
属性支持在按钮组内的组件超出边框时启用滚动。仅当按钮组位于使用 uifigure
函数创建的图窗中时,才可以滚动。App 设计工具使用此类型的图窗来创建 App。
在图窗中创建按钮组。添加六个切换按钮,前三个按钮位于按钮组的上边框之外。
fig = uifigure; bg = uibuttongroup(fig,'Position',[20 20 196 135]); tb1 = uitogglebutton(bg,'Position',[11 165 140 22],'Text','One'); tb2 = uitogglebutton(bg,'Position',[11 140 140 22],'Text','Two'); tb3 = uitogglebutton(bg,'Position',[11 115 140 22],'Text','Three'); tb4 = uitogglebutton(bg,'Position',[11 90 140 22],'Text','Four'); tb5 = uitogglebutton(bg,'Position',[11 65 140 22],'Text','Five'); tb6 = uitogglebutton(bg,'Position',[11 40 140 22],'Text','Six');
通过将按钮组的 Scrollable
属性设置为 'on'
来启用滚动。默认情况下,滚动框显示在顶部。
bg.Scrollable = 'on';
输入参数
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
示例: uibuttongroup(Title="Options")
指定按钮组标题为 Options
。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: uibuttongroup("Title","Options")
指定按钮组标题为 Options
。
注意
此处所列的属性只是可用属性中的一部分。有关完整列表,请参阅 ButtonGroup 属性。
Title
— 标题
字符向量 | 字符串标量 | 分类数组
标题,指定为字符向量、字符串标量或分类数组。如果将此属性指定为分类数组,MATLAB 将仅显示数组中的第一个元素。
MATLAB 不会将竖线 ('|'
) 字符解释为换行符,它在标题中显示为竖线。
如果要指定 Unicode® 字符,则将 Unicode 十进制码传递到 char
函数。例如,['Multiples of ' char(960)]
显示为 Multiples of
π。
BackgroundColor
— 背景色
[0.94 0.94 0.94]
(默认) | RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
背景颜色,指定为 RGB 三元组、十六进制颜色代码或下表中列出的颜色选项之一。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码'#FF8800'
与'#ff8800'
、'#F80'
与'#f80'
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
SelectedObject
— 当前选择的单选按钮或切换按钮
按钮组中的第一个单选按钮或切换按钮 (默认)
当前选定的单选按钮或切换按钮,指定为基于 uifigure
的 App 中的 RadioButton
或 ToggleButton
对象,或基于 figure
的 App 中的 UIControl
对象。
获取此属性的值,以确定当前选定了按钮组中的哪个按钮。
设置此属性的值,以更改当前选定的按钮。当您使用此属性更改所选内容时,MATLAB 将对按钮组中其他按钮的 Value
属性进行相应的调整。
例如,假设您的按钮组包含三个单选按钮,而您将 SelectedObject
属性设置为 radiobutton3
。MATLAB 将按照如下方式设置每个子 RadioButton
的 Value
属性:
radiobutton1.Value = false;
radiobutton2.Value = false;
radiobutton3.Value = true;
换句话说,设置 SelectedObject
属性与设置按钮组中按钮的 Value
属性具有相同的效果。
SelectionChangedFcn
— 所选内容改变时的回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
所选内容改变时的回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户从 App 中的按钮组中选择不同的按钮时,将会执行此回调。如果以编程方式更改单选按钮或切换按钮的 Value
属性,将不会执行此回调。
此回调函数可以访问有关用户与按钮的交互的特定信息。MATLAB 将 SelectionChangedData
对象中的此信息作为第二个参数传递给回调函数。在 App 设计工具中,该参数名为 event
。您可以使用圆点表示法查询对象属性。例如,event.NewValue
返回当前选择的按钮。SelectionChangedData
对象不可用于指定为字符向量的回调函数。
下表列出了 SelectionChangedData
对象的属性。
属性 | 描述 |
---|---|
OldValue | 先前选择的按钮 |
NewValue | 当前选择的按钮 |
Source | 执行回调的组件 |
EventName |
|
有关编写回调的详细信息,请参阅App 设计工具中的回调。
Position
— 按钮组的位置和大小,包括边框和标题
[left bottom width height]
按钮组的位置和大小,包括边框和标题,指定为 [left bottom width height]
形式的向量。此表介绍该向量中的每个元素。
元素 | 描述 |
---|---|
left | 父容器的内部左边缘与按钮组的外部左边缘之间的距离 |
bottom | 父容器的内部下边缘与按钮组的外部下边缘之间的距离 |
width | 按钮组的左右外部边缘之间的距离 |
height | 按钮组的上下外部边缘之间的距离 |
所有测量值都采用 Units
属性指定的单位。
Position
值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括装饰元素(如菜单栏或标题)所占的区域。
注意
如果网格布局管理器是该按钮组的父级,则 Position
属性的值不会立即更新。要使用 Position
值相对于按钮组大小调整按钮组子级的大小,请使用 SizeChangedFcn
回调。
Units
— 测量单位
'pixels'
| 'normalized'
| 'inches'
| 'centimeters'
| 'points'
| 'characters'
测量单位,指定为下表中的值之一。
单位值 | 描述 |
---|---|
'pixels' (基于 uifigure 的 App 中的默认值) | 以像素为单位的距离不依赖 Windows® 和 Macintosh 系统上的系统分辨率:
在 Linux® 系统上,一个像素的大小由系统分辨率确定。 |
'normalized' (基于 figure 的 App 中的默认值) | 这些单位依据父容器进行归一化。容器的左下角映射到 |
'inches' | 英寸。 |
'centimeters' | 厘米。 |
'points' | 磅。1 磅等于 1/72 英寸。 |
'characters' | 这些单位基于图形根对象的默认 uicontrol 字体:
要访问默认的 uicontrol 字体,请使用 |
推荐值为 'pixels'
,因为大多数 MATLAB App 构建功能都以像素为单位测量距离。您可以创建一个对象,该对象根据父容器的大小重新缩放,方法是将使用 uigridlayout
函数创建的一个网格布局管理器作为该对象的父级。有关详细信息,请参阅Lay Out Apps Programmatically。
提示
按钮组可包含任何 UI 组件类型,但只能管理单选按钮和切换按钮的选择。
要使您的程序在 App 用户选择按钮组中的单选按钮或切换按钮时做出响应,请为按钮组定义一个
SelectionChangedFcn
回调函数。不能定义对单个按钮的回调。要确定当前选择了哪个单选按钮或切换按钮,请查询按钮组的
SelectedObject
属性。可以在代码中的任何位置执行此查询。如果将按钮组对象的
Visible
属性设置为'off'
,该对象包含的任何子对象(按钮、其他按钮组等)都将与父按钮组一起变得不可见。但是,每个子对象的Visible
属性值不受影响。
版本历史记录
在 R2006a 之前推出R2023a: 使用 BorderColor
属性(而不是 HighlightColor
)更改按钮组边框颜色
通过使用 BorderColor
属性,您可以在基于 uifigure
和基于 figure
的 App 中更改按钮组的边框颜色。
推荐使用 BorderColor
属性而不是 HighlightColor
属性,后者仅在基于 figure
的 App 中受支持。目前没有停止支持 HighlightColor
的计划。
R2022b: 在基于 uifigure
的 App 中更改按钮组边框宽度
在使用 App 设计工具和使用 uifigure
函数创建的 App 中,可使用 BorderWidth
属性更改按钮组的边框宽度。
R2020b: 关闭和打开交互
要控制按钮组是否响应用户交互,请使用 Enable
属性。当 Enable
属性设置为 'on'
时,便可以与按钮组进行交互;如果按钮组中的 UI 组件处于启用状态,还可以与这些 UI 组件进行交互。当 Enable
属性设置为 'off'
时,您无法与按钮组或其内容进行交互。
只有 App 设计工具中的按钮组和基于 uifigure
的 App 才支持 Enable
属性。
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)