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);

離散型ノブの作成

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

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

ノブのプロパティ値の設定とアクセス

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

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

変更後の離散型ノブの設定に対するコードの応答

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

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

変更中の連続型ノブの設定に対するコードの応答

ユーザーがノブを回している間にアクションを繰り返し実行する連続型ノブを作成します。このノブは、ユーザーがマウス ボタンを離したときにラベルを 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 を実行してからノブを回します。回している間、変化するノブの値を表示するように数値編集フィールドが更新されます。

無効なノブの設定に対するコードの応答

ユーザーが回し終えるとアクションを実行する連続型ノブを作成します。ノブを回すたびに、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 set to previous value.',...
        'Invalid Value');
   kb.Value = previousvalue;
end
end

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

入力引数

すべて折りたたむ

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

スタイル外観
'continuous'

'discrete'

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

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

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

R2016a で導入