exponenta event banner

uiknob

Создать компонент ручки

Описание

kb = uiknob создает ручку в новом окне фигуры и возвращает Knob объект. MATLAB ® вызывает uifigure для создания фигуры.

kb = uiknob(style) определяет стиль ручки.

пример

kb = uiknob(parent) создает ручку в указанном родительском контейнере. Родителем может быть Figure создан с помощью uifigure функцию или один из ее дочерних контейнеров.

пример

kb = uiknob(parent,style) создает ручку указанного стиля в указанном родительском контейнере.

пример

kb = uiknob(___,Name,Value) задание свойств объекта с использованием одного или нескольких Name,Value аргументы пары. Используйте эту опцию с любой из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

Создать непрерывную ручку

fig = uifigure;
kb = uiknob(fig);

Создать дискретную ручку

Укажите Figure объект в качестве родительского контейнера.

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

Установка и доступ к значениям свойств непрерывной ручки

Создайте непрерывную ручку на рисунке.

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

Ответ кода на изменение настройки дискретной ручки

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

Копирование и вставка следующего кода в файл с именем displayknobvalue.m на пути MATLAB. Этот код создает окно, содержащее дискретную ручку и текстовое поле. Он определяет 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, а затем повернуть ручку. При отпускании кнопки мыши поле редактирования обновляется для отражения нового значения ручки.

Ответ кода на измененную настройку непрерывной ручки

Создайте непрерывную ручку, которая выполняет действие после ее поворота пользователем. Поворот ручки обновляет значение метки в соответствии с выбором пользователя.

Копирование и вставка следующего кода в файл с именем showknobvalue.m на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку и поле метки. Он определяет 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 и поверните ручку. При отпускании кнопки мыши метка обновляется для отражения нового значения ручки.

Ответ кода на изменение настройки непрерывной ручки

Создайте непрерывную ручку, которая многократно выполняет действие, когда пользователь поворачивает ее. Вместо обновления метки один раз, когда пользователь отпускает кнопку мыши, эта ручка обновляет метку при повороте ручки.

Копирование и вставка следующего кода в файл с именем showchangingvalue.m на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку и поле метки. Он определяет 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 выполнять вычисление с использованием текущих и предыдущих значений ручки.

Копирование и вставка следующего кода в файл с именем increaseOnly.m на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку. Он определяет 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'

Родительский контейнер, указанный как Figure объект, созданный с помощью uifigure функцию или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если родительский контейнер не указан, MATLAB вызывает uifigure для создания новой функции Figure объект, который служит родительским контейнером.

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Каждый тип объекта ручки поддерживает различный набор свойств. Полный список свойств и описаний для каждого типа см. на странице связанных свойств.

Представлен в R2016a