Main Content

uieditfield

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

説明

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

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

ef = uieditfield(style) は指定されたスタイルの編集フィールドを作成します。編集フィールドのスタイルは "text" または "numeric" にすることができます。

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

ef = uieditfield(___,Name,Value) は、1 つ以上の名前と値の引数で指定されたプロパティをもつ編集フィールドを作成します。たとえば、Value プロパティを使用して編集フィールド値を指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

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

fig = uifigure;
ef = uieditfield(fig);

Figure contains an object of type uieditfield.

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

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

Figure contains an object of type uinumericeditfield.

数値編集フィールドを作成し、その範囲を 0 ~ 100 に設定します。

fig = uifigure;
ef = uieditfield(fig,"numeric", ...
    "Limits",[0 100]);

Figure contains an object of type uinumericeditfield.

既定値を決定します。

val = ef.Value
val = 0

編集フィールドの値を 50 に設定します。

ef.Value = 50;

Figure contains an object of type uinumericeditfield.

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

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

Figure contains an object of type uinumericeditfield.

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

編集フィールドは Value プロパティの値をユーザーが入力した値 (5.5556) として格納します。編集フィールドを再びクリックすると 5.5556 が表示されます。

サポートされている書式表示演算子の詳細なリストについては、sprintfを参照してください。

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

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

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

Text edit field. The value in the field is -10, and the edit field has a red border and an error tooltip with text "Value must be between -5 and 10"

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

fig = uifigure;
ef = 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."

アプリ ユーザーが数値編集フィールドに値を入力したときにゲージの針を移動するアプリを作成します。

editFieldApp.m という名前のファイルで、アプリを実装する関数を作成します。

  • UI Figure およびグリッド レイアウト マネージャーを作成してアプリをレイアウトします。

  • グリッド レイアウト マネージャーで数値編集フィールドとゲージを作成します。

  • 編集フィールドの値に合わせてゲージの針を更新する editFieldValueChanged という名前のコールバック関数を作成し、その関数を編集フィールドの ValueChangedFcn コールバック プロパティに割り当てます。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function editFieldApp
fig = uifigure;
gl = uigridlayout(fig);
gl.RowHeight = {'1x',150,'fit','1x'};
gl.ColumnWidth = {'1x',150,'1x'};

g = uigauge(gl,"Limits",[0 10]);
g.Layout.Row = 2;
g.Layout.Column = 2;

ef = uieditfield(gl,"numeric", ...
    "Limits",[0 10], ...
    "ValueChangedFcn",@(src,event) editFieldValueChanged(src,event,g));
ef.Layout.Row = 3;
ef.Layout.Column = 2;
end

function editFieldValueChanged(src,event,g)
g.Value = src.Value;
end

関数 editFieldApp を実行します。編集フィールドに値を入力して、ゲージの針を更新します。

editFieldApp

Figure contains an object of type uigridlayout.

アプリ ユーザーがテキスト編集フィールドに入力した値のログを保持し、テキスト エリアにそのログを表示するアプリを作成します。

logEntriesApp.m という名前のファイルで、アプリを実装する関数を作成します。

  • UI Figure およびグリッド レイアウト マネージャーを作成してアプリをレイアウトします。

  • グリッド レイアウト マネージャーでテキスト編集フィールドとテキスト エリアを作成します。

  • ユーザーが編集フィールドに新しいテキストを入力するたびに前に入力されていたテキストをテキスト エリアに追加する editFieldValueChanged という名前のコールバック関数を作成し、その関数を編集フィールドの ValueChangedFcn コールバック プロパティに割り当てます。コールバック イベント データを使用して、前に入力されていたテキストにアクセスします。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function logEntriesApp
fig = uifigure;
g = uigridlayout(fig);
g.RowHeight = {'fit','1x'};
g.ColumnWidth = {'1x',150,'1x'};

loglist = uitextarea(g, ...    
    "Editable","off");
loglist.Layout.Row = 2;
loglist.Layout.Column = 2;

ef = uieditfield(g, ...
  "Value","Daniela Hendrix",...
  "ValueChangedFcn",@(src,event) editFieldValueChanged(src,event,loglist));
ef.Layout.Row = 1;
ef.Layout.Column = 2;
end

% Create ValueChangedFcn callback
function editFieldValueChanged(src,event,loglist)
prev = event.PreviousValue;
loglist.Value = [prev; loglist.Value];
end

関数 logEntriesApp を実行します。編集フィールドに名前をいくつか入力します。新しい名前を入力するたびに、アプリは前の名前を、テキスト エリアに表示されているログに追加します。

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" — アプリ ユーザーは編集フィールドに数値のみを入力できます。ユーザーが数値以外の値を入力しようとすると、MATLAB はエラーのツールヒントを表示し、その値を直前の有効な値に戻します。既定では、数値編集フィールドには値 0 が表示されます。

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

名前と値の引数

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

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

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

バージョン履歴

R2016a で導入

すべて展開する