Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uieditfield

テキストまたは数値の編集フィールド コンポーネントの作成

説明

edt = uieditfield は、テキスト編集フィールドを新しい Figure ウィンドウ内に作成し、EditField オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

edt = uieditfield(style) は指定されたスタイルの編集フィールドを作成します。

edt = uieditfield(parent) は指定された親コンテナー内に編集フィールドを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

edt = uieditfield(parent,style) は、指定された親コンテナー内に指定されたスタイルの編集フィールドを作成します。

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

すべて折りたたむ

ウィンドウにテキスト編集フィールドを作成します。

fig = uifigure;
edt = uieditfield(fig);

スタイルを数値として指定して、数値編集フィールドを作成します。

fig = uifigure;
edt = uieditfield(fig,'numeric');

Panel を親オブジェクトとして指定します。

fig = uifigure;
pnl = uipanel(fig);
edt = uieditfield(pnl,'numeric');

丸めをオンにして数値編集フィールドを作成します。

fig = uifigure;
edt = uieditfield(fig,'numeric',...
                    'RoundFractionalValues','on');

既定の範囲を調べます。

limits = edt.Limits
limits =

  -Inf   Inf

戻り値は範囲がないことを示します。

範囲を 0 から 100 までに変更します (既定では範囲は上下限値を含む)。

edt.Limits = [0 100];

-5 より大きく 10 以下の値をアプリ ユーザーが入力できる数値編集フィールドを作成します。

fig = uifigure;
edt = uieditfield(fig,'numeric',...
                      'Limits', [-5 10],...
                      'LowerLimitInclusive','off',...
                      'UpperLimitInclusive','on',...
                      'Value', 5);

範囲外の値を数値編集フィールドに入力すると、MATLAB はメッセージを表示します。メッセージは問題を示し、値を前の有効な値に戻します。

アプリ ユーザーが任意の値を入力できる一方で、必ず厳密に 2 桁の小数部と指定した単位を使用して値が表示される数値編集フィールドを作成します。MATLAB はアプリ ユーザーが入力したそのままの値を格納します。

fig = uifigure;
edt = uieditfield(fig,'numeric',...
                      'ValueDisplayFormat', '%.2f Volts');

数値編集フィールドに 5.5556 を入力し、その外部をクリックします。編集フィールドには 5.56 Volts が表示されます。

MATLAB は値を 5.5556 として格納します。編集フィールドを再びクリックすると 5.5556 が表示されます。サポートされている書式表示演算子の詳細なリストについては、sprintf を参照してください。

アプリ ユーザーが編集フィールドのテキストを変更したときにラベルがそのテキストに合わせて更新されるように、ValueChangedFcn コールバックのコードを記述します。

MATLAB パス上の textValue.m に次のコードを保存します。

function textValue
% Create figure and components.

fig = uifigure('Position',[100 100 366 270]);

lbl = uilabel(fig,...
      'Position',[130 100 100 15]);

txt = uieditfield(fig,...
      'Position',[100 175 100 22],...
      'ValueChangedFcn',@(txt,event) textChanged(txt,lbl));
end

% Code the callback function.
function textChanged(txt,lbl)
lbl.Text = txt.Value;
end

textValue を実行し、編集フィールドに Velocity を入力します。編集フィールドの外部をクリックしてコールバックをトリガーします。

アプリ ユーザーが編集フィールドの値を変更したときに、スライダーがその値に合わせて更新されるように、ValueChangedFcn コールバックのコードを記述します。

MATLAB パス上の numericEditFieldValue.m に次のコードを保存します。

function numericEditFieldValue
% Create figure and components

fig = uifigure('Position',[100 100 366 270]);

slider = uislider(fig,...
    'Position',[100 140 120 3]);

numfld = uieditfield(fig,'numeric',...
    'Position',[110 200 100 22],...
    'ValueChangedFcn',@(numfld,event) numberChanged(numfld,slider));

end

% Create ValueChangedFcn callback
function numberChanged(numfld,slider)
slider.Value = numfld.Value;
end

numericEditFieldValue を実行します。

数値編集フィールドに 0 ~ 100 の値を入力して、フィールドの外部をクリックします。スライダーが移動して数値編集フィールドの値を示します。

1 回のセッションで入力された値のログを維持するように、ValueChangedFcn コールバックのコードを記述します。アプリ ユーザーが編集フィールドの値を変更すると、テキスト エリアに維持されているリストに直前のフィールド値が追加されます。このコールバックは event 引数で返された PreviousValue プロパティを使用して、テキスト エリアに入力します。

MATLAB パス上の logNames.m に次のコードを保存します。

function logNames
% Create figure and components

fig = uifigure('Position',[100 100 366 400]);

loglist = uitextarea(fig,...
    'Position',[134 49 150 277],...    
    'Editable','off');

namefld = uieditfield(fig,'text',...
  'Value', 'Bob Langley',...
  'Position',[134 367 100 22],...
  'ValueChangedFcn',@(namefld,event) nValChanged(namefld,event,loglist));
end

% Create ValueChangedFcn callback
function nValChanged(namefld,event,loglist)
newvalue = event.Value;
previousValue = event.PreviousValue;

loglist.Value = [previousValue; loglist.Value];

end

logNames を実行します。

テキスト編集フィールドに名前を入力して Enter キーを押すたびに、テキスト編集フィールドにあった直前の名前がテキスト エリアに追加されます。

入力引数

すべて折りたたむ

編集フィールドのタイプ。次のいずれかとして指定します。

  • 'text'

    既定では、テキスト編集フィールドは空です。

  • 'numeric'

    既定では、数値編集フィールドには値 0 が表示されます。アプリ ユーザーが数値編集フィールドに数値以外の値を入力した場合、MATLAB はエラーのツールヒントを開き、値を最後の有効な値に戻します。

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

名前と値のペアの引数

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

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

R2016a で導入