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 つ以上の名前と値の引数を使用してオブジェクトのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

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

fig = uifigure;
edt = uieditfield(fig);

Figure window with a blank edit field.

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

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

Figure window with a numeric edit field. The edit field value is 0.

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

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

A numeric edit field in a panel container.

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

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 はその問題を示すメッセージを表示します。無効な値を入力すると、MATLAB はその値を直前の有効な値に戻します。

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

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

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

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

長さが 3 ~ 12 文字であり、文字と数字のみで構成されるテキストをアプリ ユーザーが入力できるテキスト編集フィールドを作成します。

fig = uifigure;
edt = uieditfield(fig, ...
    "CharacterLimits",[3 12], ...
    "InputType","alphanumerics");

無効な値をテキスト編集フィールドに入力すると、MATLAB はその問題を示すメッセージを表示します。その後、Enter キーを押したり、コンポーネントから移動したりすることで無効な値を入力すると、MATLAB はその値を直前の有効な値に戻します。

Text edit field. The text in the field is "ab", and the edit field has a red border and an error tooltip with text "Value must be between 3 and 12 characters long."

アプリ ユーザーが編集フィールドのテキストを変更したときにラベルがそのテキストに合わせて更新されるように、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 を入力します。編集フィールドの外部をクリックしてコールバックをトリガーします。

An app with an edit field and a label. Both the edit field and the label display the text "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 の値を入力して、フィールドの外部をクリックします。スライダーが移動して数値編集フィールドの値を示します。

An app with an edit field and a slider. The text in the edit field matches the value of the slider.

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 キーを押すたびに、テキスト編集フィールドにあった直前の名前がテキスト エリアに追加されます。

An app with an edit field and a text area. The edit field contains a name, and the text area has a list of multiple names.

入力引数

すべて折りたたむ

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

  • "text"

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

  • "numeric"

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

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

名前と値の引数

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

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

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

バージョン履歴

R2016a で導入

すべて展開する