Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

uiknob

(App Designer) Create continuous or discrete knob component

Use only with App Designer or figures created with the uifigure function. Apps created with GUIDE or the figure function do not support knob components.

Syntax

kb = uiknob
kb = uiknob(style)
kb = uiknob(parent)
kb = uiknob(parent,style)
kb = uiknob(___,Name,Value)

Description

kb = uiknob creates a knob component in a new UI figure window and returns the Knob object.

kb = uiknob(style) specifies the knob style.

example

kb = uiknob(parent) creates the knob in the specified parent container. The parent container can be a Figure created using the uifigure function, or one of its child containers: Tab, Panel, or ButtonGroup.

example

kb = uiknob(parent,style) creates a knob of the specified style in the specified parent container.

example

kb = uiknob(___,Name,Value) specifies object properties using one or more Name,Value pair arguments. Use this option with any of the input argument combinations in the previous syntaxes.

Input Arguments

collapse all

Type of knob, specified as one of the following values:

StyleDefault Visual
'continuous'

'discrete'

Parent object, specified as a Figure created using the uifigure function, or one of its child containers: Tab, Panel, or ButtonGroup.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Each type of knob object supports a different set of properties. For a full list of properties and descriptions for each type, see the associated property page.

Examples

Create Continuous Knob

fig = uifigure;
kb = uiknob(fig);

Create Discrete Knob

Specify a Figure object as the parent container.

fig = uifigure('Position',[100 100 300 250]);
kb = uiknob(fig,'discrete');

Set and Access Continuous Knob Property Values

Create a continuous knob in a UI figure window.

fig = uifigure;
kb = uiknob(fig);

Determine the knob limits.

limits = kb.Limits
limits =

     0   100

Change the limits and the knob value.

kb.Limits = [-10 10];
kb.Value = 5;

Set and Access Property Values

Create a discrete knob.

fig = uifigure;
kb = uiknob(fig,'discrete');

Change the knob states. Set the data associated with the knob states to reflect temperatures in degrees Fahrenheit.

kb.Items = {'Cold', 'Warm', 'Hot'};
kb.ItemsData = {32, 80, 212};

Get the temperature associated with the current knob value.

degrees = kb.Value
degrees =

    32

Code Response to Changed Discrete Knob Setting

Create a discrete knob that performs an action after the app user turns it. Turning the knob updates the value of a text field to reflect the app user's choice.

Copy and paste the following code into a file named displayknobvalue.m on your MATLAB® path. This code creates a window containing a discrete knob and a text field. It specifies a ValueChangedFcn callback to update the text field when the knob is turned.

function displayKnobValue
% Create UI 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

Run displayKnobValue, and then turn the knob. When you release the mouse button, the edit field is updated to reflect the new knob value.

Code Response to Changed Continuous Knob Setting

Create a continuous knob that performs an action after the user turns it. Turning the knob updates the value of a label to reflect the user's choice.

Copy and paste the following code into a file named showknobvalue.m on your MATLAB path. This code creates a window containing a continuous knob and a label field. It specifies a ValueChangedFcn callback to update the label when the knob is turned.

function showKnobValue
% Create UI 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

Run showKnobValue and turn the knob. When you release the mouse button, the label is updated to reflect the new knob value.

Code Response to Changing Continuous Knob Setting

Create a continuous knob that repeatedly performs an action as the user is turning it. Instead of updating a label just once when the user releases the mouse button, this knob makes changes to the label as the knob is being turned.

Copy and paste the following code into a file named showchangingvalue.m on your MATLAB path. This code creates a window containing a continuous knob and a label field. It specifies a ValueChangingFcn callback to keep updating the label as the knob is being turned.

function showChangingValue
% Create UI 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

Run showChangingValue, and turn the knob. As you do so, the numeric edit field is updated to show the changing knob values.

Code Response to Invalid Knob Setting

Create a continuous knob that performs an action after the user turns it. each turn of the knob causes MATLAB to perform a calculation using the current and previous knob values.

Copy and paste the following code into a file named increaseOnly.m on your MATLAB path. This code creates a window containing a continuous knob. It specifies a ValueChangedFcn callback for the knob to display an Invalid Value dialog box if the app user attempts to decrease the knob value.

function increaseOnly
% Create UI 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 set to previous value.',...
        'Invalid Value');
   kb.Value = previousvalue;
end
end

Run increaseOnly, increase the knob value, and then try to decrease it. When you try to decrease the value, an error dialog box displays and the value is reverted to the previous valid value. You can only increase the knob value.

Introduced in R2016a

Was this topic helpful?