Main Content

uislider

创建滑块或范围滑块组件

说明

sld = uislider 在新图窗窗口中创建一个标准滑块,并返回 Slider 对象。MATLAB® 调用 uifigure 函数来创建该图窗。

sld = uislider(style) 创建指定样式的滑块。将 style 指定为 "range" 以创建范围滑块,而不是标准滑块。

sld = uislider(parent) 在指定的父容器中创建滑块。父容器可以是使用 uifigure 函数创建的 Figure 对象或其子容器之一。

示例

sld = uislider(parent,style) 在指定的父容器中创建指定样式的滑块。

示例

sld = uislider(___,Name,Value) 使用一个或多个名称-值参量指定 Slider 属性,以及之前语法中的任何输入参量组合。例如,uislider("Value",50) 创建一个值为 50 的滑块。

示例

示例

全部折叠

在 UI 图窗中创建一个滑块组件。

fig = uifigure;
sld = uislider(fig);

Figure contains an object of type uislider.

在 UI 图窗中创建一个范围滑块。

fig = uifigure;
sld = uislider(fig,"range");

Figure contains an object of type uirangeslider.

在 UI 图窗中创建一个垂直滑块。

fig = uifigure;
sld = uislider(fig,"Orientation","vertical");

Figure contains an object of type uislider.

在 UI 图窗中创建一个滑块。将滑块值设置为 50。

fig = uifigure;
sld = uislider(fig,"Value",50);

Figure contains an object of type uislider.

确定当前滑块控件的范围。

limits = sld.Limits
limits = 1×2

     0   100

更改滑块控件的范围,将值设置为 35。

sld.Limits = [-50 50];
sld.Value = 35;

Figure contains an object of type uislider.

在 UI 图窗中创建一个滑块。

fig = uifigure;
sld = uislider(fig);

Figure contains an object of type uislider.

自定义滑块外观。更新范围和主刻度以对应以华氏度为单位的温度,并删除次刻度。

sld.Limits = [32 212];
sld.MajorTicks = [32 100 150 212];
sld.MajorTickLabels = sld.MajorTicks + "°F";
sld.MinorTicks = [];

Figure contains an object of type uislider.

创建一个具有滑块和仪表的 App。当 App 用户移动滑块并释放鼠标按键时,仪表的指针将更新以反映滑块值。

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

  • 创建一个 UI 图窗和一个网格布局管理器,以对该 App 进行布局。

  • 在网格布局管理器中创建一个仪表和一个滑块。

  • 编写名为 updateGauge 的回调函数,该函数可更改仪表值以匹配滑块值,并将该函数赋给滑块的 ValueChangedFcn 回调属性。有关回调的详细信息,请参阅Create Callbacks for Apps Created Programmatically

function sliderApp
fig = uifigure("Position",[100 100 300 250]);
g = uigridlayout(fig);
g.RowHeight = {'1x','fit'};
g.ColumnWidth = {'1x','fit','1x'};

cg = uigauge(g);
cg.Layout.Row = 1;
cg.Layout.Column = [1 3];

sld = uislider(g, ...
    "ValueChangedFcn",@(src,event)updateGauge(src,event,cg));
sld.Layout.Row = 2;
sld.Layout.Column = 2;
end

function updateGauge(src,event,cg)
cg.Value = event.Value;
end

运行 sliderApp 函数并移动滑块。释放滑块时,仪表的值会更新。

sliderApp

Figure contains an object of type uigridlayout.

创建一个具有绘图和范围滑块的 App。当 App 用户移动任一滑块时,绘图的着色区域会更新以反映范围滑块值。

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

  • 创建一个 UI 图窗和一个网格布局管理器,以对该 App 进行布局。

  • 在网格布局管理器中创建 UI 坐标区和一个范围滑块。在 UI 坐标区中绘制一些数据,并创建一个填充区域来突出显示部分数据。

  • 编写一个名为 updateRange 的回调函数,该函数更新填充区域的范围以匹配范围滑块值,并将该函数赋给范围滑块的 ValueChangingFcn 回调属性。有关回调的详细信息,请参阅Create Callbacks for Apps Created Programmatically

function rangeSliderApp
fig = uifigure;
g = uigridlayout(fig);
g.RowHeight = {'1x','fit'};
g.ColumnWidth = {'1x'};

ax = uiaxes(g);
plot(ax,peaks);
xr = xregion(ax,10,35);

sld = uislider(g,"range", ...
    "Limits",[0 50], ...
    "Value",[10 35]);

sld.ValueChangingFcn = @(src,event) updateRange(src,event,xr);
end

function updateRange(src,event,xr)
val = event.Value;
xr.Value = val;
end

运行 rangeSliderApp 函数并移动滑块。拖动任一滑块时,坐标区中的填充区域会更新。

Plot and range slider in a UI figure window. The plot has a highlighted region with a range that matches the value of the range slider.

输入参数

全部折叠

滑块的样式,指定为以下值之一:

  • "slider" - 标准滑块,通过一个滑块指定值

  • "range" - 范围滑块,通过两个滑块指定值的范围

父容器,指定为使用 uifigure 函数创建的 Figure 对象或其子容器之一:TabPanelButtonGroupGridLayout。如果不指定父容器,MATLAB 会调用 uifigure 函数创建新 Figure 对象充当父容器。

名称-值参数

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

示例: uislider(Limits=[0 50]) 将滑块最小值指定为 0,将滑块最大值指定为 50

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

示例: uislider("Limits",[0 50]) 将滑块最小值指定为 0,将滑块最大值指定为 50

每个样式的滑块都支持一组不同属性。有关每种样式的属性和描述的完整列表,请参阅相关联的属性页。

  • 如果 style 为默认值 "slider",请参阅 Slider

  • 如果 style"range",请参阅 RangeSlider

版本历史记录

在 R2016a 中推出

全部展开

另请参阅

函数

属性

工具