MATLAB中uitabgroup函数用法

本文详细介绍了MATLAB中的uitabgroup函数,如何创建包含选项卡的容器,设置选项卡属性,如位置、标题和滚动功能。还讲解了如何编写选项卡切换的回调程序,以便在用户行为改变时执行特定操作。
摘要由CSDN通过智能技术生成

目录

语法

说明

示例

包含两个选项卡的选项卡组

选项卡组中的可滚动选项卡

编写选项卡切换响应程序


        uitabgroup函数的功能是创建包含选项卡式面板的容器。

语法

tg = uitabgroup
tg = uitabgroup(Name,Value)
tg = uitabgroup(parent)
tg = uitabgroup(parent,Name,Value)

说明

        tg = uitabgroup 在当前图窗中创建一个选项卡组并返回 TabGroup 对象。如果没有可用的图窗,MATLAB® 将调用 figure 函数创建一个图窗。选项卡组是选项卡的容器。它们允许标识选定的选项卡,并检测用户何时选择了不同的选项卡。

        tg = uitabgroup(Name,Value) 使用一个或多个名称-值参数指定选项卡组属性值。例如,可以指定选项卡组的位置或选项卡标签的位置。

        tg = uitabgroup(parent) 在指定的父容器中创建选项卡组。父容器可以是使用 figure 或 uifigure 函数创建的图窗,也可以是子容器(如面板)。uitabgroup 的属性值略有不同,具体取决于该 App 是使用 figure 还是 uifigure 函数创建的。具体可以参考名称-值参数。

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

示例

包含两个选项卡的选项卡组

        创建一个图窗,其中包含一个选项卡组和两个选项卡。

f = figure;
tabgp = uitabgroup(f,"Position",[.05 .05 .3 .8]);
tab1 = uitab(tabgp,"Title","Settings");
tab2 = uitab(tabgp,"Title","Options");

如图所示:

获取当前选择的选项卡。

currenttab = tabgp.SelectedTab
currenttab = 

  Tab (Settings) with properties:

              Title: 'Settings'
    BackgroundColor: [0.9400 0.9400 0.9400]
           Position: [0.0119 0.0089 0.9702 0.9107]
              Units: 'normalized'

选项卡组中的可滚动选项卡

​        Scrollable 属性支持在选项卡内的组件超出边框时启用滚动。要使用滚动功能,图窗必须使用 uifigure 函数创建。App 设计工具使用此类型的图窗来创建 App。

        创建包含一个选项卡的选项卡组。向该选项卡添加六个 UI 组件,前三个组件位于选项卡的上边框的外部。

fig = uifigure;
tg = uitabgroup(fig,"Position",[20 20 196 145]);
t = uitab(tg,"Title","Member Information");
ef1 = uieditfield(t,"Text","Position",[11 165 140 22],"Value","First Name");
ef2 = uieditfield(t,"Text","Position",[11 140 140 22],"Value","Last Name");
ef3 = uieditfield(t,"Text","Position",[11 115 140 22],"Value","Address");
dd = uidropdown(t,"Position",[11 90 140 22],"Items",{'Male','Female'});
cb = uicheckbox(t,"Position",[11 65 140 22],"Text","Member");
b = uibutton(t,"Position",[11 40 140 22],"Text","Send");

如图所示:

        通过将选项卡的 Scrollable 属性设置为 "on" 来启用滚动。默认情况下,滚动条显示在顶部。

t.Scrollable = "on";

如图所示:

编写选项卡切换响应程序

        在新脚本中,在 UI 图窗中创建一个具有两个选项卡的选项卡组。将 SelectionChangedFcn 属性指定为名为 displaySelection 的函数的句柄。当用户在选项卡组中的选项卡之间切换时,将执行此函数。

        在脚本的底部,定义 displaySelection 函数来接受 MATLAB 传递给回调函数的两个输入参数:

  • src - 执行回调的组件

  • event - 关于触发回调的用户交互的信息

        在回调函数中,编写代码以在命令行窗口中显示可见选项卡的标题。

fig = uifigure;
tg = uitabgroup(fig,"SelectionChangedFcn",@displaySelection);
t1 = uitab(tg,"Title","Data");
t2 = uitab(tg,"Title","Plots");

function displaySelection(src,event)
    t = event.NewValue;
    title = t.Title;
    disp("Viewing the " + title + " tab")
end

        运行脚本并在选项卡之间切换以显示选项卡标题。

参数说明

parent — 父容器

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

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

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

SelectedTab — 当前选择的选项卡

        当前选择的选项卡,指定为 Tab 对象。使用此属性可确定选项卡组中当前选定的选项卡。也可以使用此属性设置默认选项卡选项。SelectedTab 属性的默认值是添加到 TabGroup 中的第一个 Tab。

SelectionChangedFcn — 所选内容改变时的回调

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

  • 函数句柄。

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

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

当用户在选项卡组中选择不同的选项卡时,将执行此回调函数。

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

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

属性

描述

OldValue

之前选择的 Tab 或 [](如果未进行选择)

NewValue

当前选择的 Tab

Source

执行回调的组件

EventName

'SelectionChanged'

TabLocation — 选项卡标签位置

        选项卡标签位置,指定为 'top'、'bottom'、'left' 或 'right'。此属性指定选项卡标签相对于选项卡组的位置。

Position — 选项卡组的位置和大小

        选项卡组的位置和大小,指定为 [left bottom width height] 形式的四元素向量。

        此表介绍该向量中的每个元素。

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

        ​所有测量值都采用 Units 属性指定的单位。Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括装饰元素(如菜单栏或标题)所占的区域。

​Units — 测量单位

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

单位值描述
'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 函数创建的一个网格布局管理器作为该对象的父级。

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值