uislider
创建滑块组件
说明
示例
创建滑块
创建垂直滑块
设置和访问滑块属性
在 UI 图窗中创建一个滑块。将滑块值设置为 50。
fig = uifigure;
sld = uislider(fig,"Value",50);
确定当前滑块控件的范围。
limits = sld.Limits
limits = 1×2
0 100
更改滑块控件的范围,将值设置为 35。
sld.Limits = [-50 50]; sld.Value = 35;
配置滑块刻度线
在 UI 图窗中创建一个滑块。
fig = uifigure; sld = uislider(fig);
自定义滑块外观。更新范围和主刻度以对应以华氏度为单位的温度,并删除次刻度。
sld.Limits = [32 212];
sld.MajorTicks = [32 100 150 212];
sld.MajorTickLabels = sld.MajorTicks + "°F";
sld.MinorTicks = [];
编写响应以下操作的代码:移动滑块
创建一个具有滑块和仪表的 App。当 App 用户移动滑块并释放鼠标按键时,仪表的指针将更新以反映滑块值。
在名为 sliderApp.m
的文件中,编写实现该 App 的函数:
创建一个 UI 图窗和一个网格布局管理器,以对该 App 进行布局。
在网格布局管理器中创建一个仪表和一个滑块。
Write a callback function named
updateGauge
that changes the gauge value to match the slider value, and assign the function to theValueChangedFcn
callback property of the slider.有关回调的详细信息,请参阅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
编写响应以下操作的代码:移动滑块
创建一个包含滑块和仪表的 App。当 App 用户移动滑块时,仪表的指针将立即更新以反映滑块值。
在名为 sliderApp2.m 的文件中,编写实现该 App 的函数:
创建一个 UI 图窗和一个网格布局管理器,以对该 App 进行布局。
在网格布局管理器中创建一个仪表和一个滑块。
Write a callback function named
updateGauge
that changes the gauge value to match the slider value, and assign the function to theValueChangingFcn
callback property of the slider.有关回调的详细信息,请参阅Create Callbacks for Apps Created Programmatically。
function sliderApp2 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, ... "ValueChangingFcn",@(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
运行 sliderApp2
函数并移动滑块。当您拖动滑块时,仪表指针会移动。
sliderApp2
输入参数
parent
— 父容器
Figure
对象 (默认) | Tab
对象 | Panel
对象 | ButtonGroup
对象 | GridLayout
对象
父容器,指定为使用 uifigure
函数创建的 Figure
对象或其子容器之一:Tab
、Panel
、ButtonGroup
或 GridLayout
。如果不指定父容器,MATLAB 会调用 uifigure
函数创建新 Figure
对象充当父容器。
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
示例: uislider(Limits=[0 50])
将滑块最小值指定为 0
,将滑块最大值指定为 50
。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: uislider("Limits",[0 50])
将滑块最小值指定为 0
,将滑块最大值指定为 50
。
此处所列的属性只是可用属性中的一部分。有关完整列表,请参阅 Slider 属性。
Value
— 滑块值
0 (默认) | 数值
滑块值,指定为数值。数值必须在 Limits
属性值指定的范围内。
数据类型: double
Limits
— 滑块的最小值和最大值
[0 100] (默认) | 二元素数值数组
滑块的最小值和最大值,指定为二元素数值数组。第一个值必须小于第二个值。
如果您更改 Limits
,使得 Value
属性小于新的下限值,MATLAB 属性会将 Value
设置为新的下限值。例如,假设 Limits
属性为 [0 100]
,Value
为 20。如果 Limits
更改为 [50 100]
,MATLAB 会将 Value
属性设置为 50。
同样,如果您更改 Limits
,使得 Value
属性大于新的上限值,MATLAB 会将 Value
属性设置为新的上限值。
数据类型: double
MajorTicks
— 主刻度线位置
[0 20 40 60 80 100]
(默认) | 数值向量 | []
主刻度线位置,指定为数值向量或空向量。如果您不想显示主刻度线,请将此属性指定为空向量。
超出 Limits
属性范围的刻度位置不显示。
MATLAB 将删除重复的刻度值。但是,如果主刻度与次刻度落在相同的值上,则只显示主刻度。
如果设置 MajorTicks
属性,会将 MajorTicksMode
属性设置为 'manual'
。
MajorTickLabels
— 主刻度标签
{'0','20','40','60','80','100'}
(默认) | 字符向量元胞数组 | 字符串数组 | {}
| ...
主刻度标签,指定为字符向量元胞数组、字符串数组或一维分类数组。如果您不想显示刻度标签,请将此属性指定为空元胞数组。如果要删除特定刻度线上的标签,请为 MajorTickLabels
数组中的对应元素指定空字符向量或空字符串标量。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。
如果 MajorTickLabels
数组的长度与 MajorTicks
向量的长度不同,MATLAB 将忽略较长的那个数组中的多余条目。如果有多余的标签,这些标签将被忽略。如果有多余的刻度线,将显示这些刻度线但不带标签。
如果设置 MajorTickLabels
,会将 MajorTickLabelsMode
值更改为 'manual'
。
注意
当 MajorTicksMode
为 'auto'
时,设置 MajorTickLabels
可能导致意外结果。要避免这种情况,请将 MajorTicksMode
设置为 'manual'
,并在设置 MajorTickLabels
之前手动指定 MajorTicks
的值。
ValueChangedFcn
— 更改值后执行的回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
更改值后执行的回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户将滑块移动到滑块控件上的不同位置时,将会执行此回调。如果以编程方式更改滑块值,将不会执行此回调。
此回调函数可以访问有关用户与滑块的交互的特定信息。MATLAB 将 ValueChangedData
对象中的此信息作为第二个参数传递给回调函数。在 App 设计工具中,该参数名为 event
。您可以使用圆点表示法查询对象属性。例如,event.PreviousValue
返回滑块的上一个值。ValueChangedData
对象不可用于指定为字符向量的回调函数。
下表列出了 ValueChangedData
对象的属性。
属性 | 值 |
---|---|
Value | 滑块在 App 用户最近一次与它交互之后的值 |
PreviousValue | 滑块在 App 用户最近一次与它交互之前的值 |
Source | 执行回调的组件 |
EventName | 'ValueChanged' |
有关编写回调的详细信息,请参阅App 设计工具中的回调。
ValueChangingFcn
— 更改值后执行的回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
更改值后执行的回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
当用户沿 App 中的滑块控件移动滑块时,将会执行此回调。如果以编程方式更改 Value
属性,将不会执行此回调函数。
此回调可以访问有关用户与滑块交互的特定信息。MATLAB 将 ValueChangingData
对象中的此信息作为第二个参数传递给回调函数。在 App 设计工具中,该参数名为 event
。您可以使用圆点表示法查询对象属性。例如,event.Value
返回滑块的当前值。ValueChangingData
对象不可用于指定为字符向量的回调函数。
下表列出了 ValueChangingData
对象的属性。
属性 | 值 |
---|---|
Value | 滑块在 App 用户与它交互时的当前值 |
Source | 执行回调的组件 |
EventName | 'ValueChanging' |
在用户释放滑块之前,Slider
对象的 Value
属性不会更新。因此,要获取移动滑块时的值,您的代码必须获取 ValueChangingData
对象的 Value
属性。
注意
请避免从其自己的 ValueChangingFcn
回调中更新 Slider
对象的 Value
属性,因为这可能导致意外行为。要更新滑块值以响应用户输入,请改用 ValueChangedFcn
回调。
ValueChangingFcn
回调按照如下方式执行:
如果 App 用户点击滑块值一次,回调将执行一次。例如,如果滑块在 1.0 的位置,App 用户在 1.1 位置单击一次,回调将执行一次。
如果 App 用户点击滑块并将其拖动到新位置,回调将重复执行。例如,如果滑块值为 1.0,App 用户点击、按住并将滑块拖动到值 10.0 处,回调将执行多次,直到 App 用户释放滑块为止。
有关编写回调的详细信息,请参阅App 设计工具中的回调。
Position
— 滑块的位置和大小
[100 100 150 3]
(默认) | [left bottom width height]
滑块的位置和大小,不包括刻度线和标签,指定为向量 [left bottom width height]
。此表介绍该向量中的每个元素。
元素 | 描述 |
---|---|
left | 父容器的内部左边缘与滑块的外部左边缘之间的距离 |
bottom | 父容器的内部下边缘与滑块的外部下边缘之间的距离 |
width | 滑块的左右外部边缘之间的距离 |
height | 滑块的上下外部边缘之间的距离 |
所有测量值都以像素为单位。
当 Orientation
属性值为 'horizontal'
时,不能更改滑块的高度。同样,当 Orientation
属性值为 'vertical'
时,不能更改滑块的宽度。
Position
值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括装饰元素(如菜单栏或标题)所占的区域。
示例: [100 200 60 60]
版本历史记录
在 R2016a 中推出
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)