Создайте дерево или компонент дерева флажка
создает стандартное дерево в новом окне рисунка и возвращает t
= uitreeTree
объект. MATLAB® вызывает uifigure
функция, чтобы создать фигуру.
создает дерево заданного стиля. Задайте t
= uitree(style
)style
как 'checkbox'
создать дерево флажка вместо стандартного.
создает дерево со свойствами, заданными одним или несколькими t
= uitree(___,Name,Value
)Name,Value
аргументы. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.
Создайте дерево, которое содержит родительский узел под названием Sample Data
с дочерним узлом под названием Sample 1
. Расширьте дерево, чтобы видеть оба узла.
fig = uifigure; t = uitree(fig); parent = uitreenode(t,'Text','Sample Data'); child = uitreenode(parent,'Text','Sample 1'); expand(t)
Создайте дерево флажка, которое содержит родительский узел под названием Sample Data
с дочерним узлом под названием Sample 1
. Расширьте дерево, чтобы видеть оба узла.
fig = uifigure; t = uitree(fig,'checkbox'); parent = uitreenode(t,'Text','Sample Data'); child = uitreenode(parent,'Text','Sample 1'); expand(t)
Разработайте узлы в дереве, которое демонстрирует файловую структуру, чтобы визуально отличить различные типы файлов.
Создайте древовидный компонент пользовательского интерфейса. Каждый узел верхнего уровня представляет папку. Каждый дочерний узел представляет файл в той папке. Расширьте дерево, чтобы видеть все узлы.
fig = uifigure('Position',[300 300 350 400]); t = uitree(fig); % Parent nodes n1 = uitreenode(t,'Text','App 1'); n2 = uitreenode(t,'Text','App 2'); n3 = uitreenode(t,'Text','Images'); % Child nodes n11 = uitreenode(n1,'Text','myapp1.m'); n21 = uitreenode(n2,'Text','myapp2.m'); n22 = uitreenode(n2,'Text','app2callback.m'); n31 = uitreenode(n3,'Text','peppers.png'); n32 = uitreenode(n3,'Text','corn.tif'); expand(t)
Создайте три стиля: один с полужирной толщиной шрифта, один с углом курсивного шрифта, и один с синим цветом шрифта.
dirStyle = uistyle('FontWeight','bold'); imgStyle = uistyle('FontAngle','italic'); mStyle = uistyle('FontColor','blue');
Примените полужирный стиль к узлам верхнего уровня, чтобы отличить узлы, которые представляют папки. Примените синий стиль к дочерним элементам App 1
и App 2
узлы, чтобы отличить узлы, которые представляют файлы программы MATLAB. Наконец, примените курсивный стиль к узлам, которые представляют файлы изображений.
addStyle(t,dirStyle,'level',1); addStyle(t,mStyle,'node',[n1.Children;n2.Children]); addStyle(t,imgStyle,'node',[n31 n32]);
Создайте приложение, которое отображает имена спортсмена, сгруппированные спортом. Когда пользователь приложения нажимает на имя, данные об отображениях 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 отображает текст того узла.
Создайте дерево, которое заполняет узлы на основе данных в таблице.
Создайте фигуру с менеджером по размещению сетки, чтобы содержать компоненты пользовательского интерфейса. Загрузите выборочные данные на отключениях электричества электроэнергетики и создайте компонент таблицы UI, чтобы отобразить данные. Затем создайте дерево, чтобы содержать узлы, перечисляющие области и причины отключений электричества.
fig = uifigure; gl = uigridlayout(fig,[1 2]); gl.ColumnWidth = {'2x','1x'}; T = readtable('outages.csv'); T = T(1:20,{'Region','OutageTime','Loss','Cause'}); tbl = uitable(gl,'Data',T); tr = uitree(gl);
Задайте табличные переменные, чтобы отобразиться в дереве. Для каждой из тех переменных создайте узел верхнего уровня, текст которого является именем переменной. Извлеките соответствующие данные путем преобразования записей таблицы для переменной к категориальному массиву и возврата списка категорий как names
. Затем цикл через категории. Для каждого элемента добавьте узел в дерево под соответствующим родительским узлом.
vars = {'Region','Cause'}; for k1 = 1:length(vars) var = vars{k1}; varnode = uitreenode(tr,'Text',var); rows = T{:,var}; names = categories(categorical(rows)); for k2 = 1:length(names) text = names{k2}; uitreenode(varnode,'Text',text); end end
Расширьте дерево, чтобы видеть все узлы.
expand(tr)
Когда вы создаете древовидный компонент пользовательского интерфейса со многими узлами, можно обеспечить более быстро реагирующий опыт для пользователя приложения путем создания дочерних узлов только после того, как родительский узел расширен.
Эта практика обладает этими преимуществами:
Улучшает время запуска для вашего приложения, потому что приложение создает только древовидные узлы верхнего уровня прежде, чем отобразить компонент.
Улучшает полное время загрузки в случаях, где пользователь приложения не должен получать доступ ко всем узлам на одном сеансе, потому что приложение создает только узлы, которые пользователь приложения запрашивает видеть.
Чтобы создать дочерние узлы, когда родительский элемент будет расширен, запишите NodeExpandedFcn
коллбэк для дерева, и создает узлы в функции обратного вызова.
Например, создайте приложение, которое отображает имена пациентов и больницы в дереве. Создайте файл с именем patientTreeApp.m
в вашей текущей папке и задают функцию с именем patientTreeApp
. В функции выполните эти шаги:
Читайте в демонстрационных данных о пациентах и сохраните их в табличной переменной под названием T
.
Создайте окно рисунка, и затем создайте дерево на рисунке.
Заполните дерево с двумя узлами верхнего уровня. Эти узлы будут иметь дочерние элементы с именами больницы и именами пациентов из данных.
Для каждого из узлов верхнего уровня создайте один дочерний элемент с текстом 'Loading...'
. Этот дочерний узел гарантирует, что узлы верхнего уровня имеют опцию для пользователя приложения, чтобы расширить их. Это предоставляет пользователю приложения мгновенную обратную связь, когда они сначала расширяют узел.
Присвойте createNodes
функционируйте к NodeExpandedFcn
свойство коллбэка дерева. Передайте терпеливые табличные данные как вход к функции. MATLAB выполняет createNodes
функционируйте каждый раз, когда пользователь приложения расширяет узел дерева.
function patientTreeApp T = readtable('patients'); fig = uifigure; tr = uitree(fig,'Position',[20 20 300 300]); hospitalnode = uitreenode(tr,'Text','Hospitals'); namenode = uitreenode(tr,'Text','Patient Names'); for k = 1:length(tr.Children) node = tr.Children(k); uitreenode(node,'Text','Loading...'); end tr.NodeExpandedFcn = {@createNodes,T}; end
Затем в том же файле задайте createNodes
функция обратного вызова. Задайте функцию, чтобы принять эти входные параметры: и данные о событиях источника коллбэка компонента, которые MATLAB передает функциям обратного вызова и данным о пациентах. В функции выполните эти шаги:
Сохраните узел, который был расширен в переменной под названием parent
, и затем удалите все дочерние элементы того узла.
В зависимости от которого узел был расширен, хранилище или имена больницы или имена пациентов в переменной под названием children
.
Для каждого из имен, сохраненных в children
, создайте древовидный узел, текст которого - то, что имя, и затем порождает его к расширенному узлу.
function createNodes(src,event,T) parent = event.Node; delete(parent.Children); switch parent.Text case 'Hospitals' children = categories(categorical(T.Location)); case 'Patient Names' children = categories(categorical(T.LastName)); end for k = 1:length(children) text = children{k}; uitreenode(parent,'Text',text); end end
Вызовите patientTreeApp
функция из командной строки, чтобы запустить приложение.
patientTreeApp
Расширьте Hospitals
и Patient Names
узлы, чтобы сгенерировать и отобразить их дочерние элементы.
style
— Стиль дерева'tree'
(значение по умолчанию) | 'checkbox'
Стиль дерева в виде одного из следующего:
'tree'
— Иерархический список элементов
'checkbox'
— Иерархический список элементов, которые могут проверяться, подарил флажок слева от каждого элемента
parent
— Родительский контейнерFigure
объект (значение по умолчанию) | Panel
возразите | Tab
возразите | ButtonGroup
возразите | GridLayout
объектРодительский контейнер в виде Figure
объект создал использование uifigure
функция или один из ее дочерних контейнеров: Tab
Панель
Группа кнопок
, или GridLayout
. Если вы не задаете родительский контейнер, MATLAB вызывает uifigure
функция, чтобы создать новый Figure
объект, который служит родительским контейнером.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в одинарных кавычках (' '
). Можно задать несколько имен и аргументов пары значения как Name1,Value1,...,NameN,ValueN
.
Каждый тип Tree
поддержка объектов различный набор свойств. Для полного списка свойств и описаний для каждого типа, смотрите связанную страницу свойств.
Если style
значение по умолчанию, 'tree'
, см. Свойства объекта Tree.
Если style
'checkbox'
, смотрите CheckBoxTree Properties.
В стандартном дереве или дереве флажка, выбранный узел обозначается синей подсветкой вокруг текста узла. Пользователь приложения может выбрать узел путем нажатия на текст узла.
В стандартном дереве с Multiselect
набор свойств к 'off'
и в каждом дереве флажка, самое большее один узел может быть выбран в любое время. В стандартном дереве можно установить Multiselect
свойство к 'on'
позволять, чтобы были выбраны несколько узлов.
В следующем изображении, Carrot
узел выбран.
В дереве флажка проверенный узел обозначается проверенным флажком слева от текста узла. Любое количество узлов может проверяться. Пользователь приложения может проверять или снять флажок с узлом путем нажатия на флажок. В стандартном дереве вы не можете проверять узлы.
В следующем изображении, Fruits
, Apple
, и Banana
узлы проверяются.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.