uiknob

(App Designer) Создает компонент кнопки

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

Синтаксис

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');

Измените состояния кнопки. Установите данные, сопоставленные с состояниями кнопки отражать температуры в градусах Фаренгейт.

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.

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

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

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

Введенный в R2016a

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