Alterator/Widgets/CheckTree: различия между версиями

Материал из ALT Linux Wiki
м (переименовал Alterator/CheckTree в Alterator/Widgets/CheckTree)
 
(не показано 20 промежуточных версий 2 участников)
Строка 1: Строка 1:
== Описание ==
== Описание ==


Виджет для организации иерархического табличного представления с флажками выбора
Виджет для организации иерархического табличного представления с флажками выбора.


=== Пример ===
=== Пример ===
Строка 23: Строка 23:
=== Свойства ===
=== Свойства ===


;(append-row DATA)
;(append-row LIST)
:Добавить строку в дерево.
:Добавить строку в дерево.
:Формат DATA: список, разделённый символами «;»:
:Формат LIST: список полей, разделённый символами «;»:
:* item_id — идентификатор элемента;
:* item_id — идентификатор элемента. '''ВНИМАНИЕ!''' Не используйте в идентификаторах пробелы и «;» — это может привести к сбою работы;
:* item_parent_id — идентификатор родительского элемента;
:* item_parent_id — идентификатор родительского элемента;
:* label_1 — надпись в первом столбце;
:* label_1 — надпись в первом столбце;
:* label_X... — (опционально) надписи во втором и последующем столбцах;
:* label_X... — (опционально) надписи во втором и последующем столбцах;
;(rows DATA)
;(rows LIST)
:Добавить список строк в дерево. Строки разделены символом <tt>\n</tt>.
:Добавить список строк в дерево. Строки разделены символом «;». Количество элементов в каждой строке должно быть равно количеству столбцов+2.
;(rows-clear)
;(rows-clear)
:Удалить все строки в дереве.
:Удалить все строки в дереве.
;(expand-rows LIST)
;(expand-rows LIST)
:Развернуть элементы по списку идентификаторов, разделённых символами «;». Если параметр LIST не указан, развораются все элементы.
:Развернуть элементы по списку идентификаторов, разделённых символами «;».
;(collapse-rows LIST)
;(collapse-rows LIST)
:Свернуть элементы по списку идентификаторов, разделённых символами «;». Если параметр LIST не указан, сворачиваются все элементы (поведение по умолчанию).
:Свернуть элементы по списку идентификаторов, разделённых символами «;». По умолчанию все элементы свёрнуты.
;(state-rows LIST) --> (id_1;id_2...)
;(current-rows LIST) (id_1;id_2...)
:Установить флажки для элементов по списку идентификаторов, разделённых символами «;».
:Установить флажки для элементов по списку идентификаторов, разделённых символами «;».
:Вернуть список идентификаторов отмеченных элементов, разделённые символами «;».
:Вернуть список идентификаторов отмеченных элементов, разделённые символами «;».
;(current ID) → id
:Выделить элемент по его идентификатору
:Вернуть идентификатор текущего элемента
;(icon-rows "ICON;COLUMN;LIST")
:Установить значок <tt>ICON</tt> в столбце <tt>COLUMN</tt> (нумерация начинается с 1) для элементов по списку идентификаторов, разделённых символами «;».


=== Сигналы ===
=== Сигналы ===
;(changed)
;(changed)
:Возникает при изменении состоянии флажка любого элемента
:Возникает при изменении состоянии флажка любого элемента.
;(selected)
:Возникает при выделении (мышью или с клавиатуры) элемента виджета.


''Примечание'': при щелчке на флажке генерируются оба сигнала: <tt>(changed)</tt> и <tt>(selected)</tt>


== Пример ==
== Пример ==


  (document:id packages (checktree focus #t columns 2
;; Create widget and connect two slots to its signals
                 (when changed (test-label))))
  (document:id packages (checktree columns 2
  (widget append-row "g1;;Group 1")
                 (when changed (test-label))
  (widget append-row "gp1;g1;Subgroup")
                (when selected (select-label))
  (widget append-row "g2;;Another group;22045")
;; Fill values
  (packages append-row "g1;;Group 1")             ; first top-level item
  (packages append-row "gp1;g1;Subgroup")         ; child of first top-level item
  (packages append-row "g2;;Another group;22045") ; second top-level item
;; Set properties
(packages expand-rows "g1")          ; expand top-level item named 'g1'
(packages current-rows "g1;gp1")      ; set checked two items
(packages icon-rows "theme:help;;g1") ; set icon in first column
(packages current "gp1")              ; set current item


   
   


[[Категория:Виджеты Alterator]]
[[Категория:Виджеты Alterator]]

Текущая версия от 13:54, 29 марта 2013

Описание

Виджет для организации иерархического табличного представления с флажками выбора.

Пример

[-] [x] Элемент 1
 +----[ ] Подэлемент
[+] [ ] Свёрнутый элемент

У каждого элемента показывается флажок, который можно установить или снять (с помощью мыши или клавишей Space). При изменении состоянии флажка генерируется сигнал changed

API

Конструктор

(checktree)
Конструктор.

Опциональные параметры:

columns 1
Количество столбцов. По умолчанию — 1.

Свойства

(append-row LIST)
Добавить строку в дерево.
Формат LIST: список полей, разделённый символами «;»:
  • item_id — идентификатор элемента. ВНИМАНИЕ! Не используйте в идентификаторах пробелы и «;» — это может привести к сбою работы;
  • item_parent_id — идентификатор родительского элемента;
  • label_1 — надпись в первом столбце;
  • label_X... — (опционально) надписи во втором и последующем столбцах;
(rows LIST)
Добавить список строк в дерево. Строки разделены символом «;». Количество элементов в каждой строке должно быть равно количеству столбцов+2.
(rows-clear)
Удалить все строки в дереве.
(expand-rows LIST)
Развернуть элементы по списку идентификаторов, разделённых символами «;».
(collapse-rows LIST)
Свернуть элементы по списку идентификаторов, разделённых символами «;». По умолчанию все элементы свёрнуты.
(current-rows LIST) → (id_1;id_2...)
Установить флажки для элементов по списку идентификаторов, разделённых символами «;».
Вернуть список идентификаторов отмеченных элементов, разделённые символами «;».
(current ID) → id
Выделить элемент по его идентификатору
Вернуть идентификатор текущего элемента
(icon-rows "ICON;COLUMN;LIST")
Установить значок ICON в столбце COLUMN (нумерация начинается с 1) для элементов по списку идентификаторов, разделённых символами «;».

Сигналы

(changed)
Возникает при изменении состоянии флажка любого элемента.
(selected)
Возникает при выделении (мышью или с клавиатуры) элемента виджета.

Примечание: при щелчке на флажке генерируются оба сигнала: (changed) и (selected)

Пример

;; Create widget and connect two slots to its signals
(document:id packages (checktree columns 2
               (when changed (test-label))
               (when selected (select-label))
;; Fill values
(packages append-row "g1;;Group 1")             ; first top-level item
(packages append-row "gp1;g1;Subgroup")         ; child of first top-level item 
(packages append-row "g2;;Another group;22045") ; second top-level item
;; Set properties
(packages expand-rows "g1")           ; expand top-level item named 'g1'
(packages current-rows "g1;gp1")      ; set checked two items
(packages icon-rows "theme:help;;g1") ; set icon in first column
(packages current "gp1")              ; set current item