Main Content

uiknob

ノブ コンポーネントの作成

説明

kb = uiknob は、ノブを新しい Figure ウィンドウ内に作成し、Knob オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

kb = uiknob(style) はノブのスタイルを指定します。

kb = uiknob(parent) は、指定された親コンテナー内にノブを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

kb = uiknob(parent,style) は、指定された親コンテナー内に指定されたスタイルのノブを作成します。

kb = uiknob(___,Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して、オブジェクトのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

fig = uifigure;
kb = uiknob(fig);

Knob with values from 0 to 100 in a UI figure window. Every tenth value is labeled, and there are tick marks between the labeled values.

Figure オブジェクトを親コンテナーとして指定します。

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

Knob with values of Off, Low, Medium, and High in a UI figure window

Figure に連続型ノブを作成します。

fig = uifigure;
kb = uiknob(fig);

ノブの範囲を調べます。

limits = kb.Limits
limits =

     0   100

範囲とノブの値を変更します。

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

Continuous knob with values from -10 to 10. The knob is pointing to the value 5.

離散型ノブを作成します。

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

ノブの状態を変更します。ItemsData を構成して、特定のデータをノブの状態に関連付けます。この場合、ItemsData は華氏での温度を反映します。

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

Discrete knob with values of Cold, Warm, and Hot. The knob is pointing to Cold.

現在のノブの値に関連付けられている温度を取得します。

degrees = kb.Value
degrees =

    32

アプリ ユーザーが回すとアクションを実行する離散型ノブを作成します。ノブを回すと、アプリ ユーザーの選択を反映するように編集フィールドの値が更新されます。

次のコードをコピーして、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 を実行してからノブを回します。マウス ボタンを離すと、新しいノブの値を反映するように編集フィールドが更新されます。

UI figure window with a discrete knob and an edit field. The knob is pointing to the value Medium, and the edit field contains the text "Medium".

ユーザーが回し終えるとアクションを実行する連続型ノブを作成します。ノブを回すと、ユーザーの選択を反映するようにラベルの値が更新されます。

次のコードをコピーして、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 を実行してからノブを回します。マウス ボタンを離すと、新しいノブの値を反映するようにラベルが更新されます。

UI figure window with a continuous knob and a label. The knob is pointing to the value of 70, and the label text is "70".

ユーザーがノブを回している間にアクションを繰り返し実行する連続型ノブを作成します。このノブは、ユーザーがマウス ボタンを離したときに編集フィールドを 1 回更新するのではなく、ノブが回されるにつれて編集フィールドし更新します。

次のコードをコピーして、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 を実行してからノブを回します。それに合わせて編集フィールドは更新され、変化するノブの値が表示されます。

UI figure window with a continuous knob and a numeric edit field. The knob is pointing between 70 and 80, and the edit field text is "75.91".

ユーザーが回し終えるとアクションを実行する連続型ノブを作成します。ノブを回すたびに、MATLAB は現在および直前のノブの値を使用して計算を実行します。

次のコードをコピーして、MATLAB パス上の increaseOnly.m というファイルに貼り付けます。次のコードは、連続型ノブを含むウィンドウを作成します。このコードには、アプリ ユーザーがノブの値を減少しようとしたときに [無効な値] ダイアログ ボックスを表示する、ノブの ValueChangedFcn コールバックが指定されています。

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 を実行し、ノブの値を増加してから減少を試みます。値を減少しようとすると、エラー ダイアログ ボックスが表示され、値が直前の有効な値に戻ります。ノブの値は増加のみ可能です。

UI figure window with an error dialog box

入力引数

すべて折りたたむ

ノブのスタイル。次の値のいずれかとして指定します。

スタイル外観
'continuous'

Knob with values from 0 to 100. Every tenth value is labeled, and there are tick marks between the labeled values.

'discrete'

Knob with four discrete values: Off, Low, Medium, and High

親コンテナー。関数 uifigure を使用して作成された Figure オブジェクト、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。親コンテナーを指定しない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして機能する新しい Figure オブジェクトを作成します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

各タイプのノブ オブジェクトは、異なるプロパティのセットをサポートします。プロパティの完全なリストと各タイプについての説明は、対応するプロパティのページを参照してください。

バージョン履歴

R2016a で導入