uiknob
创建旋钮组件
语法
说明
示例
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
,增大旋钮值,然后尝试减小旋钮值。当您试图减小值时,将显示一个错误对话框,值将还原为上一个有效值。只能增大旋钮值。
输入参数
旋钮的样式,指定为下列值之一:
样式 | 外观 |
---|---|
'continuous' |
|
'discrete' |
|
父容器,指定为 Figure
对象或其子容器之一:Tab
、Panel
、ButtonGroup
或 GridLayout
。如果不指定父容器,MATLAB 会调用 uifigure
函数创建新 Figure
对象充当父容器。
名称-值参数
以 Name1=Value1,...,NameN=ValueN
的形式指定可选参量对组,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
每种类型的旋钮对象支持一组不同的属性。有关每种类型的属性和描述的完整列表,请参阅相关联的属性页。
版本历史记录
在 R2016a 中推出使用 ValueIndex
属性访问分档旋钮在其项目列表中的值的索引。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)