Main Content

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

uibuttongroup

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

说明

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

示例

bg = uibuttongroup(Name,Value) 使用一个或多个名称-值对组参数指定按钮组属性值。

bg = uibuttongroup(parent) 在指定的父容器中创建该按钮组。父容器可以是使用 figureuifigure 函数创建的图窗,也可以是子容器(如面板)。uibuttongroup 的属性值略有不同,具体取决于该 App 是使用 figure 还是 uifigure 函数创建的。有关详细信息,请参阅名称-值对组参数

示例

bg = uibuttongroup(parent,Name,Value) 指定父容器和一个或多个属性值。

示例

全部折叠

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

复制此代码并将其粘贴到编辑器中,然后运行它以查看它的工作方式。

function myui
bg = uibuttongroup('Visible','off',...
                  'Position',[0 0 .2 1],...
                  'SelectionChangedFcn',@bselection);
              
% Create three radio buttons in the button group.
r1 = uicontrol(bg,'Style',...
                  'radiobutton',...
                  'String','Option 1',...
                  'Position',[10 350 100 30],...
                  'HandleVisibility','off');
              
r2 = uicontrol(bg,'Style','radiobutton',...
                  'String','Option 2',...
                  'Position',[10 250 100 30],...
                  'HandleVisibility','off');

r3 = uicontrol(bg,'Style','radiobutton',...
                  'String','Option 3',...
                  'Position',[10 150 100 30],...
                  'HandleVisibility','off');
              
% Make the uibuttongroup visible after creating child objects. 
bg.Visible = 'on';

    function bselection(source,event)
       disp(['Previous: ' event.OldValue.String]);
       disp(['Current: ' event.NewValue.String]);
       disp('------------------');
    end
end

bselection 函数显示 eventOldValueNewValue 属性。

App with three grouped radio buttons labeled Option 1, Option 2, and Option 3. The first button is selected.

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

App with a button group with six toggle buttons. The first, second, and part of the third button are not visible.

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

bg.Scrollable = 'on';

Scrollable button group. The scroll bar on the left is scrolled to the top, and all the buttons are visible. The first button is selected.

输入参数

全部折叠

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

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

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

名称-值参数

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

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在单引号 (' ') 中。您可以指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

注意

此处所列的属性只是可用属性中的一部分。有关完整列表,请参阅 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'(默认值)

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

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

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

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

'normalized'

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

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

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

基于 figure 的 App

对于在使用 figure 函数创建的 App 中的按钮组,Units 的默认值为 'normalized'

此外,您可以将 Units 指定为 'characters'。字符单元基于图形根对象的默认 uicontrol 字体:

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

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

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

提示

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

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

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

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

版本历史记录

在 R2006a 之前推出