exponenta event banner

uitree

Создание стандартного дерева или компонента дерева флажков

Описание

t = uitree создает стандартное дерево в новом окне фигуры и возвращает Tree объект. MATLAB ® вызывает uifigure для создания фигуры.

t = uitree(style) создает дерево указанного стиля. Определить style как 'checkbox' для создания дерева флажков вместо стандартного.

пример

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

пример

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

пример

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

Примеры

свернуть все

Создание дерева, содержащего один узел с именем Sample Data.

fig = uifigure;
t = uitree(fig);
node = uitreenode(t,'Text','Sample Data');

Создание дерева флажков, содержащего родительский узел с именем Sample Data с дочерним узлом, вызываемым Sample 1. Разверните дерево, чтобы увидеть оба узла.

fig = uifigure;
t = uitree(fig,'checkbox');
parent = uitreenode(t,'Text','Sample Data');
child = uitreenode(parent,'Text','Sample 1');
expand(t)

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

Создание файла программы с именем mytreeapp.m содержит следующие команды для создания дерева, набор вложенных узлов дерева и функцию обратного вызова для дерева. SelectionChangedFcn свойство определяет функцию, выполняемую при щелчке узла в дереве.

function mytreeapp
    fig = uifigure;
    t = uitree(fig,'Position',[20 20 150 150]);

    % Assign callback in response to node selection
    t.SelectionChangedFcn = @nodechange;

    % First level nodes
    category1 = uitreenode(t,'Text','Runners','NodeData',[]);
    category2 = uitreenode(t,'Text','Cyclists','NodeData',[]);

    % Second level nodes.
    % Node data is age (y), height (m), weight (kg)
    p1 = uitreenode(category1,'Text','Joe','NodeData',[40 1.67 58] );
    p2 = uitreenode(category1,'Text','Linda','NodeData',[49 1.83 90]);
    p3 = uitreenode(category2,'Text','Rajeev','NodeData',[25 1.47 53]);
    p4 = uitreenode(category2,'Text','Anne','NodeData',[88 1.92 100]);

    % Expand the tree
    expand(t);
    
    % Create the function for the SelectionChangedFcn callback
    % When the function is executed, it displays the data of the selected item
    function nodechange(src,event)
        node = event.SelectedNodes;
        display(node.NodeData);
    end
end

При запуске пользователя mytreeapp и щелкает узел в дереве, MATLAB отображает NodeData для этого узла.

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

Создание файла программы с именем mycheckboxtreeapp.m содержит следующие команды для создания дерева флажков, набора вложенных узлов дерева и две функции обратного вызова для дерева флажков. CheckedNodesChangedFcn свойство определяет функцию, выполняемую при установке или снятии пользователем флажка узла в дереве. SelectedNodesChangedFcn свойство определяет функцию, выполняемую при выборе пользователем узла в дереве.

function mycheckboxtreeapp
    fig = uifigure;
    cbt = uitree(fig,'checkbox','Position',[20 20 150 150]);
    
    % Assign callbacks in response to node check and selection
    cbt.CheckedNodesChangedFcn = @checkchange;
    cbt.SelectionChangedFcn = @selectchange;
    
    % First level nodes
    category1 = uitreenode(cbt,'Text','Vegetables','NodeData',[]);
    category2 = uitreenode(cbt,'Text','Fruits','NodeData',[]);

    % Second level nodes.
    % Node data is the weight of the food item (in grams)
    p1 = uitreenode(category1,'Text','Cucumber','NodeData',400);
    p2 = uitreenode(category1,'Text','Carrot','NodeData',65);
    p3 = uitreenode(category2,'Text','Apple','NodeData',183);
    p4 = uitreenode(category2,'Text','Banana','NodeData',120);

    % Expand the tree
    expand(cbt);
    
    % Create the function for the CheckedNodesChangedFcn callback
    % When this function is executed, it displays the total weight of all checked items
    function checkchange(src,event)
        nodes = event.LeafCheckedNodes;
        if ~isempty(nodes)
            data = [nodes.NodeData];
            display(sum(data));
        end
    end

    % Create the function for the SelectedNodesChangedFcn callback
    % When this function is executed, it displays the name of the selected item
    function selectchange(src,event)
        node = event.SelectedNodes;
        display(node.Text);
    end
end

При запуске пользователя mycheckboxtreeapp и устанавливает или отменяет выбор узла в дереве, MATLAB отображает сумму весов (сохраненных в NodeData) для всех проверенных узлов второго уровня. Когда пользователь выбирает узел в дереве, MATLAB отображает текст этого узла.

Входные аргументы

свернуть все

Стиль дерева, указанный как один из следующих:

  • 'tree' - Иерархический список элементов

  • 'checkbox' - Иерархический список элементов, которые можно проверить, с флажком слева от каждого элемента.

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

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

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

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

Подробнее

свернуть все

Выбранные узлы

В стандартном дереве или в дереве флажков выбранный узел обозначается синим цветом вокруг текста узла. Пользователь приложения может выбрать узел, щелкнув его текст.

В стандартном дереве с помощью Multiselect свойство имеет значение 'off' и в каждом дереве флажков в любое время можно выбрать не более одного узла. В стандартном дереве можно задать Multiselect свойство для 'on' позволяет выбрать несколько узлов.

На следующем рисунке Carrot узел выбран.

Проверенные узлы

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

На следующем рисунке Fruits, Apple, и Banana проверяются узлы.

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