uiknob

Создайте компонент кнопки

Синтаксис

kb = uiknob
kb = uiknob(style)
kb = uiknob(parent)
kb = uiknob(parent,style)
kb = uiknob(___,Name,Value)

Описание

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

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Смотрите также

Функции

Свойства

Введенный в R2016a

Для просмотра документации необходимо авторизоваться на сайте