uieditfield

(App Designer) Создает текст или числовой компонент поля редактирования

Используйте только с App Designer или фигурами, созданными с функцией uifigure. При использовании GUIDE или функции figure, создайте поле редактирования с помощью uicontrol.

Синтаксис

edt = uieditfield
edt = uieditfield(style)
edt = uieditfield(parent)
edt = uieditfield(parent,style)
edt = uieditfield(___,Name,Value)

Описание

edt = uieditfield создает текстовое поле редактирования в новом окне фигуры и возвращает объект EditField. MATLAB® вызывает функцию uifigure, чтобы создать фигуру.

edt = uieditfield(style) создает поле редактирования заданного стиля.

пример

edt = uieditfield(parent) создает поле редактирования в заданном родительском контейнере. Родительский элемент может быть созданным использованием Figure функции uifigure или одного из ее дочерних контейнеров.

edt = uieditfield(parent,style) создает поле редактирования заданного стиля в заданном родительском контейнере. Родительский элемент может быть созданным использованием Figure функции uifigure или одного из ее дочерних контейнеров.

Создание числового поля редактирования

пример

edt = uieditfield(___,Name,Value) задает свойства объектов с помощью одного или нескольких аргументов пары 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 отображает сообщение. Сообщение указывает на проблему и восстанавливает значение к предыдущему допустимому значению.

Создайте числовое поле редактирования, которое позволяет пользователю приложения вводить любое значение, но всегда отображает значение, использующее точно два десятичных разряда. MATLAB хранит точное значение, которое вводит пользователь приложения.

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

Введите 5.5556 в числовом поле редактирования, и затем щелкните снаружи. Поле редактирования отображает 5.56.

MATLAB хранит значение как 5.556. Если вы щелкаете в поле редактирования, оно отображает 5.556.

Закодируйте обратный вызов ValueChangedFcn так, чтобы, когда текст изменений пользователя приложения в поле редактирования, метка будет обновлена, чтобы совпадать с тем текстом.

Сохраните следующий код в textValue.m на вашем пути MATLAB.

function textValue
% Create figure and components.

fig = uifigure('Position',[100 100 350 275]);

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, таким образом, что, когда пользователь приложения изменяет значение в поле редактирования, ползунок обновляется, чтобы совпадать с тем значением.

Сохраните следующий код в numericEditFieldValue.m на вашем пути MATLAB.

function numericEditFieldValue
% Create figure and components

fig = uifigure('Position',[100 100 350 275]);

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 в числовом поле редактирования и нажатии кнопки вне поля. Ползунок перемещается, чтобы указать на числовое значение поля редактирования.

Закодируйте обратный вызов ValueChangedFcn, чтобы поддержать журнал значений, вводимых в единственный сеанс. Когда пользователь приложения изменяет значение в поле редактирования, предыдущее значение поля добавляется к списку, ведомому в текстовой области. Обратный вызов использует свойство PreviousValue, возвращенное в аргументе event, чтобы заполнить текстовую область.

Сохраните следующий код в logNames.m на вашем пути MATLAB.

function logNames
% Create figure and components

fig = uifigure('Position',[100 100 410 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, имя, которое было ранее в текстовом поле редактирования, добавляется к текстовой области.

Входные параметры

свернуть все

Тип поля редактирования, заданного как одно из следующего:

  • Текст

    По умолчанию текстовые поля редактирования пусты.

  • Числовой

    По умолчанию числовые поля редактирования отображают значение 0. Если пользователь приложения вводит нечисловое значение в числовом поле редактирования, MATLAB открывает ошибочную подсказку и возвращается значение к последнему допустимому значению.

Родительский контейнер, заданный как Figure, создал использование функции uifigure или одного из ее дочерних контейнеров: Tab, Panel, ButtonGroup или GridLayout.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Объекты EditField и NumericEditField поддерживают различные наборы свойств. Для полного списка свойств и описаний для объекта, смотрите связанную страницу свойств.

Введенный в R2016a

Была ли эта тема полезной?