uiknob
创建旋钮组件
语法
说明
在新图窗窗口中创建一个旋钮,并返回 kb
= uiknobKnob
对象。MATLAB® 调用 uifigure
函数来创建该图窗。
指定旋钮样式。kb
= uiknob(style
)
使用一个或多个 kb
= uiknob(___,Name,Value
)Name,Value
对组参数指定对象属性。可将此选项与上述语法中的任何输入参数组合一起使用。
示例
创建连续旋钮
fig = uifigure; kb = uiknob(fig);
创建分档旋钮
指定 Figure
对象作为父容器。
fig = uifigure('Position',[100 100 300 250]); kb = uiknob(fig,'discrete');
设置和访问连续旋钮的属性值
在图窗中创建一个连续旋钮。
fig = uifigure; kb = uiknob(fig);
确定旋钮范围。
limits = kb.Limits
limits = 0 100
更改范围和旋钮值。
kb.Limits = [-10 10]; kb.Value = 5;
设置和访问属性值
创建一个分档旋钮。
fig = uifigure;
kb = uiknob(fig,'discrete');
更改旋钮状态。通过配置 ItemsData
,将特定数据与旋钮状态相关联。在本例中,ItemsData
以华氏度为单位反映温度。
kb.Items = {'Cold', 'Warm', 'Hot'}; kb.ItemsData = {32, 80, 212};
获取与当前旋钮值关联的温度。
degrees = kb.Value
degrees = 32
编写响应以下操作的代码:更改分档旋钮的设置
创建一个分档旋钮,当 App 用户转动它时,它将执行一个操作。转动旋钮将更新编辑字段的值,以反映 App 用户的选择。
请将以下代码复制粘贴到 MATLAB 路径中名为 displayknobvalue.m
的文件中。以下代码将创建一个窗口,其中包含一个分档旋钮和一个编辑字段。它指定 ValueChangedFcn
回调,以便在转动旋钮时更新编辑字段。
function displayKnobValue % Create figure window fig = uifigure('Position',[100 100 283 275]); % Create the text field txt = uieditfield(fig,'text',... 'Position', [69 82 100 22]); % Create the knob kb = uiknob(fig,'discrete',... 'Position',[89 142 60 60],... 'ValueChangedFcn',@(kb,event) knobTurned(kb,txt)); end % Code the knob callback function function knobTurned(knob,txt) txt.Value = knob.Value; end
运行 displayKnobValue
,然后转动旋钮。当您释放鼠标按键时,编辑字段将更新,以反映新的旋钮值。
编写响应以下操作的代码:更改连续旋钮的设置
创建一个连续旋钮,当用户转动它时,它将执行一个操作。转动旋钮将更新标签的值,以反映用户的选择。
请将以下代码复制粘贴到 MATLAB 路径中名为 showknobvalue.m
的文件中。以下代码将创建一个窗口,其中包含一个连续旋钮和一个标签字段。它指定 ValueChangedFcn
回调,以便在转动旋钮时更新标签。
function showKnobValue % Create figure window and components fig = uifigure('Position',[100 100 283 275]); % Create label lbl = uilabel(fig,... 'Position',[218 177 50 15],... 'Text','0'); % Create knob kb = uiknob(fig,... 'Position',[89 142 60 60],... 'ValueChangedFcn', @(kb,event) knobTurned(kb,lbl)); end % Create ValueChangedFcn callback function knobTurned(kb,lbl) num = kb.Value; lbl.Text = num2str(num); end
运行 showKnobValue
,然后转动旋钮。当您释放鼠标按键时,标签将更新,以反映新的旋钮值。
编写响应以下操作的代码:变化中的连续旋钮设置
创建一个连续旋钮,当用户转动它时,它将重复执行一个操作。编辑字段不是每当用户释放鼠标按键时更新一次,而是随着旋钮的转动而连续更新。
请将以下代码复制粘贴到 MATLAB 路径中名为 showchangingvalue.m
的文件中。以下代码将创建一个窗口,其中包含一个连续旋钮和一个编辑字段。它指定 ValueChangingFcn
回调,以便在转动旋钮时不断更新编辑字段。
function showChangingValue % Create figure window fig = uifigure('Position',[100 100 283 275]); % Create numeric edit field num = uieditfield(fig,'numeric',... 'Position',[69 82 100 20]); % Create knob kb = uiknob(fig,... 'Position',[89 142 60 60],... 'ValueChangingFcn',@(kb,event) knobTurned(kb,event,num)); end % Create ValueChangingFcn callback function knobTurned(kb,event,num) num.Value = event.Value; end
运行 showChangingValue
,然后转动旋钮。转动旋钮时编辑字段将更新,以显示不断变化的旋钮值。
编写响应以下操作的代码:无效的旋钮设置
创建一个连续旋钮,当用户转动它时,它将执行一个操作。每次转动旋钮时,MATLAB 都会使用当前旋钮值和上一个旋钮值执行一次计算。
请将以下代码复制粘贴到 MATLAB 路径中名为 increaseOnly.m
的文件中。以下代码将创建一个窗口,其中包含一个连续旋钮。它为旋钮指定 ValueChangedFcn
回调,以便在 App 用户试图减小旋钮值时,显示无效值对话框。
function increaseOnly % Create figure window fig = uifigure('Position',[100 100 400 275]); % Create knob kb = uiknob(fig,... 'Position',[150 125 60 60],... 'ValueChangedFcn',@(kb,event) nValChanged(kb,event,fig)); end % Create ValueChangedFcn callback function nValChanged(kb,event,fig) newvalue = event.Value; previousvalue = event.PreviousValue; if previousvalue > newvalue uialert(fig, 'Increase value only. Value reverted to previous value.', ... 'Invalid Value'); kb.Value = previousvalue; end end
运行 increaseOnly
,增大旋钮值,然后尝试减小旋钮值。当您试图减小值时,将显示一个错误对话框,值将还原为上一个有效值。只能增大旋钮值。
输入参数
style
— 旋钮的样式
'continuous'
(默认) | 'discrete'
旋钮的样式,指定为下列值之一:
样式 | 外观 |
---|---|
'continuous' |
|
'discrete' |
|
parent
— 父容器
Figure
对象 (默认) | Tab
对象 | Panel
对象 | ButtonGroup
对象 | GridLayout
对象
父容器,指定为使用 uifigure
函数创建的 Figure
对象或其子容器之一:Tab
、Panel
、ButtonGroup
或 GridLayout
。如果不指定父容器,MATLAB 会调用 uifigure
函数创建新 Figure
对象充当父容器。
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
每种类型的旋钮对象支持一组不同的属性。有关每种类型的属性和描述的完整列表,请参阅相关联的属性页。
版本历史记录
在 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)