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 которая содержит следующие команды для создания дерева, набора вложенных узлов дерева и функции обратного вызова для дерева. The 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 которая содержит следующие команды для создания дерева флажков, набора вложенных узлов дерева и двух функций обратного вызова для дерева флажков. The CheckedNodesChangedFcn свойство задает функцию, которая должна выполняться, когда пользователь проверяет или снимает флажок с узла в дереве. The 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