ttk::treeview — виджет иерархического многоколоночного отображения данных
Синтаксис
ttk::treeview pathname ?options?
Описание
Виджет ttk::treeview отображает иерархическую коллекцию элементов. Каждый элемент имеет текстовую метку, необязательное изображение и необязательный список значений данных. Значения данных отображаются в последующих столбцах после метки дерева.
Порядок отображения значений данных может быть изменён с помощью параметра -displaycolumns виджета. Виджет дерева также может отображать заголовки столбцов. Столбцы могут быть доступны по номеру или по символичным именам, указанным в параметре -columns; см. ИДЕНТИФИКАТОРЫ СТОЛБЦОВ.
Каждый элемент идентифицируется уникальным именем. Если имя не предоставлено, виджет сгенерирует идентификатор элемента. Существует выделенный корневой элемент, имеющий имя {}. Сам корневой элемент не отображается; его дочерние элементы отображаются на верхнем уровне иерархии.
Каждый элемент также имеет список тегов, которые могут быть использованы для привязки событий и управления внешним видом элемента.
Виджеты Treeview поддерживают горизонтальную и вертикальную прокрутку со стандартными параметрами -[xy]scrollcommand и командами виджетов [xy]view.
Список идентификаторов столбцов, определяющий количество столбцов и их имена.
Имя в командной строке: -displaycolumns
Имя базы данных: displayColumns
Класс базы данных: DisplayColumns
Список идентификаторов столбцов (символьные имена или целочисленные индексы), определяющих, какие столбцы данных отображаются и в каком порядке, или строка #all. Если установлено #all (по умолчанию), все столбцы отображаются в заданном порядке.
Имя в командной строке: -height
Имя базы данных: height
Класс базы данных: Height
Определяет количество отображаемых строк. Примечание: требуемая ширина определяется из суммы ширины столбцов.
Имя в командной строке: -padding
Имя базы данных: padding
Класс базы данных: Padding
Устанавливает внутренний отступ для виджета. Отступ — список из до четырёх значений длин; см. Ttk_GetPaddingFromObj() для получения подробностей.
Имя в командной строке: -selectmode
Имя базы данных: selectMode
Класс базы данных: SelectMode
Управляет тем, как встроенные привязки класса управляют выделением. Одно из значений extended, browse или none.
Если установлено extended (по умолчанию), можно выбрать несколько элементов. Если browse, одновременно можно выбрать только один элемент. Если none, выделение не будет изменено.
Обратите внимание, что код приложения и привязки тегов могут устанавливать выделение как угодно, независимо от значения -selectmode.
Имя в командной строке: -show
Имя базы данных: show
Класс базы данных: Show
Список, содержащий ноль или более из следующих значений, определяющих, какие элементы дерева отображать.
tree
Отобразить метки дерева в столбце #0.
headings
Отобразить строку заголовков.
По умолчанию используется tree headings, то есть отображаются все элементы.
ПРИМЕЧАНИЕ: Столбец #0 всегда относится к столбцу дерева, даже если -show tree не указан.
Команда виджета
pathname bbox item ?column?
Возвращает прямоугольник (относительно окна виджета treeview) указанного item в формате x y ширина высота. Если указан column, возвращает прямоугольник этой ячейки. Если item не отображается (например, если он является потомком скрытого элемента или находится вне области видимости), возвращает пустой список.
pathname cget option
Возвращает текущее значение указанного option; см. ttk::widget(n).
pathname children item ?newchildren?
Если newchildren не указано, возвращает список потомков, принадлежащих item.
Если newchildren указано, заменяет список потомков item на newchildren. Элементы из старого списка потомков, отсутствующие в новом списке, отсоединяются от дерева. Ни один из элементов в newchildren не может быть предком item.
Запрос или изменение параметров указанного column. Если не указано -option, возвращает словарь пар параметр/значение. Если указан один -option, возвращает значение этого параметра. В противном случае параметры обновляются указанными значениями. Следующие параметры могут быть установлены для каждого столбца:
-id name
Название столбца. Это параметр только для чтения. Например, [$pathname column #n -id] возвращает столбец данных, связанный с отображаемым столбцом #n.
-anchor
Указывает, как текст в этом столбце должен быть выровнен относительно ячейки. Одно из значений n, ne, e, se, s, sw, w, nw или center.
-minwidth
Минимальная ширина столбца в пикселях. Виджет treeview не сделает столбец меньше, чем -minwidth при изменении размера виджета или перетаскивании разделителя столбцов пользователем.
-stretch
Указывает, следует ли изменять ширину столбца при изменении размера виджета.
-width w
Ширина столбца в пикселях. Значение по умолчанию — разумное, вероятно, 200 или около того.
Используйте pathname column #0 для настройки столбца дерева.
pathname configure ?option? ?value option value ...?
Изменение или запрос параметров виджета; см. ttk::widget(n).
pathname delete itemList
Удаляет каждый из элементов в itemList и всех его потомков. Корневой элемент удалить нельзя. См. также: detach.
pathname detach itemList
Отсоединяет все указанные элементы в itemList от дерева. Элементы и все их потомки по-прежнему присутствуют и могут быть повторно вставлены в другое место дерева с помощью операции move, но не будут отображаться, пока это не будет сделано. Корневой элемент отсоединить нельзя. См. также: delete.
pathname exists item
Возвращает 1, если указанный item присутствует в дереве, 0 в противном случае.
pathname focus ?item?
Если указан item, устанавливает фокусированный элемент в item. В противном случае возвращает текущий фокусированный элемент или {}, если такового нет.
Запрос или изменение параметров заголовка указанного column. Допустимые параметры:
-text text
Текст для отображения в заголовке столбца.
-image imageName
Указывает изображение для отображения справа от заголовка столбца.
-anchor anchor
Указывает выравнивание текста заголовка. Одно из стандартных значений выравнивания Tk.
-command script
Скрипт, который выполняется при нажатии на метку заголовка.
Используйте pathname heading #0 для настройки заголовка столбца дерева.
pathname identify component x y
Возвращает описание указанного component в точке с координатами x и y или пустую строку, если такой component отсутствует в этой позиции. Поддерживаются следующие подкоманды:
pathname identify region x y
Возвращает одно из:
heading
Область заголовка дерева; используйте [pathname identify column x y] для определения номера заголовка.
separator
Пространство между двумя заголовками столбцов; [pathname identify column x y] вернет идентификатор отображаемого столбца заголовка слева от разделителя.
tree
Область дерева.
cell
Ячейка данных.
pathname identify item x y Возвращает идентификатор элемента в позиции y.
pathname identify column x y
Возвращает идентификатор столбца данных ячейки в позиции x. Столбец дерева имеет ID #0.
Возвращает целочисленный индекс item в списке потомков его родителя.
pathname insert parent index ?-id id? options...
Создает новый элемент. parent — идентификатор родительского элемента или пустая строка {} для создания нового корневого элемента. index — целое число или значение end, указывающее, куда в списке потомков parent вставить новый элемент. Если index меньше или равно нулю, новый узел вставляется в начало; если index больше или равно текущему количеству потомков, он вставляется в конец. Если указан -id, он используется как идентификатор элемента; id не должен уже существовать в дереве. В противном случае генерируется новый уникальный идентификатор.
pathname insert возвращает идентификатор только что созданного элемента. См. ПАРАМЕТРЫ ЭЛЕМЕНТОВ для списка доступных параметров.
pathname instate statespec ?script?
Тестирование состояния виджета; см. ttk::widget(n).
Запрос или изменение параметров указанного item. Если не указано -option, возвращает словарь пар параметр/значение. Если указан один -option, возвращает значение этого параметра. В противном случае параметры элемента обновляются указанными значениями. См. ПАРАМЕТРЫ ЭЛЕМЕНТОВ для списка доступных параметров.
pathname move item parent index
Перемещает item в позицию index в списке потомков parent. Нельзя перемещать элемент под одного из его потомков.
Если index меньше или равно нулю, item перемещается в начало; если больше или равно количеству потомков, в конец.
pathname next item
Возвращает идентификатор следующего элемента-потомка item, или {}, если item — последний потомок своего родителя.
pathname parent item
Возвращает ID родителя item или {}, если item находится на верхнем уровне иерархии.
pathname prev item
Возвращает идентификатор предыдущего элемента-потомка item, или {}, если item — первый потомок своего родителя.
pathname see item
Обеспечивает отображение item: устанавливает все предки item в -open true и, при необходимости, прокручивает виджет, чтобы item находился в видимой части дерева.
pathname selection ?selop itemList?
Если selop не указан, возвращает список выбранных элементов. В противном случае selop — одно из следующих:
pathname selection set itemList
itemList становится новым выбором.
pathname selection add itemList
Добавить itemList к выбору
pathname selection remove itemList
Удалить itemList из выбора
pathname selection toggle itemList
Переключить состояние выбора каждого элемента в itemList.
pathname set item ?column? ?value?
С одним аргументом возвращает словарь пар столбец/значение для указанного item. С двумя аргументами возвращает текущее значение указанного column. С тремя аргументами устанавливает значение столбца column в элементе item на указанное value. См. также ИДЕНТИФИКАТОРЫ СТОЛБЦОВ.
pathname state ?stateSpec?
Изменение или запрос состояния виджета; см. ttk::widget(n).
pathName tag args...
pathName tag bind tagName ?sequence? ?script?
Добавить скрипт привязки Tk для события sequence к тегу tagName. При доставке события X в элемент, скрипты привязки для каждого из -тегов элемента вычисляются в порядке, указанном в bindtags(n).
<KeyPress>, <KeyRelease> и виртуальные события отправляются в элемент фокуса. <ButtonPress>, <ButtonRelease> и <Motion> события отправляются элементу под курсором мыши. Другие типы событий не поддерживаются.
Привязка script подвергается подстановкам % перед вычислением; см. bind(n) для подробностей.
pathName tag configure tagName ?option? ?value option value...?
Запрос или изменение опций для указанного tagName. Если указаны одна или несколько пар option/value, задаёт значения этих опций для указанного тега. Если указана одна option, возвращает значение этой опции (или пустую строку, если опция не была задана для tagName). Без дополнительных аргументов возвращает словарь настроек опций для tagName. См. ТЕГИ OPTIONS для списка доступных опций.
pathName tag has tagName ?item?
Если item указан, возвращает 1 или 0 в зависимости от того, имеет ли указанный элемент указанный тег. В противном случае возвращает список всех элементов, которые имеют указанный тег.
pathName tag names
Возвращает список всех тегов, используемых виджетом.
pathName tag add tag items
Добавляет указанный tag к каждому из перечисленных items. Если tag уже присутствует для определённого элемента, тогда -теги этого элемента остаются без изменений.
pathName tag remove tag ?items?
Удаляет указанный tag из каждого из перечисленных items. Если items опущено, удаляет tag из каждого элемента в дереве. Если tag не присутствует для определённого элемента, тогда -теги этого элемента остаются без изменений.
pathName xview args
Стандартная команда для горизонтальной прокрутки; см. widget(n).
pathName yview args
Стандартная команда для вертикальной прокрутки; см. ttk::widget(n).
Опции элементов
Следующие опции элементов могут быть указаны для элементов в командах виджетов insert и item.
Каждый элемент должен иметь такое же количество значений, как опция виджета -columns. Если значений меньше, чем столбцов, оставшиеся значения считаются пустыми. Если значений больше, чем столбцов, дополнительные значения игнорируются.
Имя в командной строке: -open
Имя в базе данных: open
Класс базы данных: Open
Логическое значение, указывающее, должны ли отображаться дочерние элементы элемента (-open true) или скрыты (-open false).
Имя в командной строке: -tags
Имя в базе данных: tags
Класс базы данных: Tags
Список тегов, связанных с этим элементом.
Опции тегов
Следующие опции могут быть заданы для тегов:
-foreground
Задаёт цвет текста.
-background
Задаёт цвет фона ячейки или элемента.
-font
Задаёт шрифт для отображения текста.
-image
Задаёт изображение элемента, в случае если опция -image элемента пуста.
Идентификаторы столбцов
Идентификаторы столбцов могут иметь любой из следующих форматов:
Символическое имя из списка -columns.
Целое число n, указывающее n-й столбец данных.
Строка вида #n, где n — целое число, указывающее n-й столбец отображения.
ПРИМЕЧАНИЕ: Значения -values элемента могут отображаться в другом порядке, чем порядок, в котором они хранятся.
ПРИМЕЧАНИЕ: Столбец #0 всегда относится к столбцу дерева, даже если -show tree не указан.
Номер столбца данных — индекс в списке -values элемента; номер столбца отображения — номер столбца в дереве, где отображаются значения. Метки дерева отображаются в столбце #0. Если -displaycolumns не задан, тогда данные столбца n отображаются в столбце отображения #n+1. Снова, столбец #0 всегда относится к столбцу дерева.
Виртуальные события
Виджет treeview генерирует следующие виртуальные события.
<<TreeviewSelect>>
Генерируется всякий раз, когда изменяется выделение.
<<TreeviewOpen>>
Генерируется перед установкой элемента фокуса в -open true.
<<TreeviewClose>>
Генерируется сразу после установки элемента фокуса в -open false.
Команды виджета focus и selection могут быть использованы для определения затронутого элемента или элементов.