Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

uibuttongroup

创建用于管理单选按钮和切换按钮的按钮组

说明

bg = uibuttongroup 在当前图窗中创建一个按钮组,并返回 ButtonGroup 对象。如果没有可用的图窗,MATLAB® 将调用 figure 函数创建一个图窗。

bg = uibuttongroup(parent) 在指定的父容器中创建该按钮组。父容器可以是使用 figureuifigure 函数创建的图窗,也可以是子容器(如面板)。

示例

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]);

Figure contains an object of type uibuttongroup.

点击按钮 3。按钮组通过将第一个按钮显示为取消选中、将第三个按钮显示为选中来管理切换按钮选择。

Button group in a UI figure window. There are three toggle buttons and the third button is selected.

在 UI 图窗中创建一个按钮组。向按钮组添加三个单选按钮。默认情况下,第一个按钮处于选中状态。

fig = uifigure;
bg = uibuttongroup(fig,"Position",[137 113 123 85]);
b1 = uiradiobutton(bg,"Text","Button 1","Position",[10 50 100 22]);
b2 = uiradiobutton(bg,"Text","Button 2","Position",[10 28 100 22]);
b3 = uiradiobutton(bg,"Text","Button 3","Position",[10 6 100 22]);

Figure contains an object of type uibuttongroup.

点击按钮 3。按钮组通过将第一个按钮显示为取消选中、将第三个按钮显示为选中来管理单选按钮选择。

Button group in a UI figure window. There are three toggle buttons and the third button is selected.

使用 Scrollable 属性以在组件超出其边框的按钮组内启用。仅当按钮组位于使用 uifigure 函数创建的图窗中时,才可以滚动。App 设计工具使用此类型的图窗来创建 App。

在 UI 图窗中创建一个按钮组。添加六个切换按钮,前三个按钮位于按钮组的上边框之外。

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");

Figure contains an object of type uibuttongroup.

通过将按钮组的 Scrollable 属性设置为 'on' 来启用滚动。默认情况下,滚动框显示在顶部。

bg.Scrollable = 'on';

Figure contains an object of type uibuttongroup.

当用户从按钮组中选择一个不同单选按钮时,在 MATLAB 命令行窗口中创建一个显示上一次的按钮选择和当前的按钮选择的 App。

在名为 buttonGroupApp.m 的文件中,编写实现该 App 的函数:

  • 创建一个具有按钮组的 UI 图窗,该按钮组包含三个单选按钮。

  • 为该按钮组编写一个名为 displaySelection 的回调函数(该函数显示以前和当前选择的单选按钮的文本),并将该函数赋给 SelectionChangedFcn 回调属性。有关回调的详细信息,请参阅Create Callbacks for Apps Created Programmatically

function buttonGroupApp
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
end

运行 buttonGroupApp 函数。更改按钮选择。命令行窗口中将显示上一个选择和当前选择。

buttonGroupApp

Figure contains an object of type uibuttongroup.

输入参数

全部折叠

父容器,指定为使用 figureuifigure 函数创建的图窗或子容器:

  • 面板、选项卡和按钮组可以是任一类型的图窗中的容器。

  • 网格布局是只能位于使用 uifigure 函数创建的图窗中的容器。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

示例: uibuttongroup(Title="Options") 指定按钮组标题为 Options

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: uibuttongroup("Title","Options") 指定按钮组标题为 Options

注意

此处所列的属性只是可用属性中的一部分。有关完整列表,请参阅 ButtonGroup 属性

标题,指定为字符向量、字符串标量或分类数组。如果将此属性指定为分类数组,MATLAB 将仅显示数组中的第一个元素。

MATLAB 不会将竖线 ('|') 字符解释为换行符,它在标题中显示为竖线。

如果要指定 Unicode® 字符,则将 Unicode 十进制码传递到 char 函数。例如,['Multiples of ' char(960)] 显示为 Multiples of π。

背景颜色,指定为 RGB 三元组、十六进制颜色代码或下表中列出的颜色选项之一。

RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

当前选定的单选按钮或切换按钮,指定为基于 uifigure 的 App 中的 RadioButtonToggleButton 对象,或基于 figure 的 App 中的 UIControl 对象。

获取此属性的值,以确定当前选定了按钮组中的哪个按钮。

设置此属性的值,以更改当前选定的按钮。当您使用此属性更改所选内容时,MATLAB 将对按钮组中其他按钮的 Value 属性进行相应的调整。

例如,假设您的按钮组包含三个单选按钮,而您将 SelectedObject 属性设置为 radiobutton3。MATLAB 将按照如下方式设置每个子 RadioButtonValue 属性:

  • radiobutton1.Value = false;

  • radiobutton2.Value = false;

  • radiobutton3.Value = true;

换句话说,设置 SelectedObject 属性与设置按钮组中按钮的 Value 属性具有相同的效果。

所选内容改变时的回调,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

当用户从 App 中的按钮组中选择不同的按钮时,将会执行此回调。如果以编程方式更改单选按钮或切换按钮的 Value 属性,将不会执行此回调。

此回调函数可以访问有关用户与按钮的交互的特定信息。MATLAB 将 SelectionChangedData 对象中的此信息作为第二个参量传递给回调函数。在 App 设计工具中,该参量名为 event。您可以使用圆点表示法查询对象属性。例如,event.NewValue 返回当前选择的按钮。SelectionChangedData 对象不可用于指定为字符向量的回调函数。

下表列出了 SelectionChangedData 对象的属性。

属性

描述

OldValue

先前选择的按钮

NewValue

当前选择的按钮

Source

执行回调的组件

EventName

'SelectionChanged'

有关编写回调的详细信息,请参阅App 设计工具中的回调

按钮组的位置和大小,包括边框和标题,指定为 [left bottom width height] 形式的向量。此表介绍该向量中的每个元素。

元素描述
left父容器的内部左边缘与按钮组的外部左边缘之间的距离
bottom父容器的内部下边缘与按钮组的外部下边缘之间的距离
width按钮组的左右外部边缘之间的距离
height按钮组的上下外部边缘之间的距离

所有测量值都采用 Units 属性指定的单位。

Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括装饰元素(如菜单栏或标题)所占的区域。

注意

如果网格布局管理器是该按钮组的父级,则 Position 属性的值不会立即更新。要使用 Position 值相对于按钮组大小调整按钮组子级的大小,请使用 SizeChangedFcn 回调。

测量单位,指定为下表中的值之一。

单位值描述
'pixels'(基于 uifigure 的 App 中的默认值)

以像素为单位的距离不依赖 Windows®Macintosh 系统上的系统分辨率:

  • 在 Windows 系统上,一个像素是 1/96 英寸。

  • Macintosh 系统上,一个像素是 1/72 英寸。

在 Linux® 系统上,一个像素的大小由系统分辨率确定。

'normalized'(基于 figure 的 App 中的默认值)

这些单位依据父容器进行归一化。容器的左下角映射到 (0,0),右上角映射到 (1,1)

'inches'英寸。
'centimeters'厘米。
'points'磅。1 磅等于 1/72 英寸。
'characters'

这些单位基于图形根对象的默认 uicontrol 字体:

  • 字符宽度 = 字母 x 的宽度。

  • 字符高度 = 两个文本行的基线之间的距离。

要访问默认的 uicontrol 字体,请使用 get(groot,'defaultuicontrolFontName')set(groot,'defaultuicontrolFontName')

推荐值为 'pixels',因为大多数 MATLAB App 构建功能都以像素为单位测量距离。您可以创建一个对象,该对象根据父容器的大小重新缩放,方法是将使用 uigridlayout 函数创建的一个网格布局管理器作为该对象的父级。有关详细信息,请参阅Lay Out Apps Programmatically

提示

  • 按钮组可包含任何 UI 组件类型,但只能管理单选按钮和切换按钮的选择。

  • 要使您的程序在 App 用户选择按钮组中的单选按钮或切换按钮时做出响应,请为按钮组定义一个 SelectionChangedFcn 回调函数。不能定义对单个按钮的回调。

  • 要确定当前选择了哪个单选按钮或切换按钮,请查询按钮组的 SelectedObject 属性。可以在代码中的任何位置执行此查询。

  • 如果将按钮组对象的 Visible 属性设置为 'off',该对象包含的任何子对象(按钮、其他按钮组等)都将与父按钮组一起变得不可见。但是,每个子对象的 Visible 属性值不受影响。

版本历史记录

在 R2006a 之前推出

全部展开