Rich Tree
Binds hierarchical data through RichTreeData adapters instead of hand-written TreeItem trees.
Map get_id, get_label, and get_children, then optionally add lazy fetch, virtualization, inline edit, and reorder through TreeBehavior and shared TreeExpansion / TreeSelection APIs. Use composed Tree when you need full slot control over every row.
- File explorers, org charts, or category trees backed by structured data
- Lazy-loaded subtrees that fetch children on first expand
- Inline editing and drag reorder on data-bound items
- Build
RichTreeDatawithget_id,get_label, andget_childrenadapters. - Share expansion/selection state via
TreeExpansionandTreeSelectionsignals. - Use
TreeBehavior::with_on_label_changeto persist label edits.
Default data-driven tree
Basic adapter mapping id, label, and nested children.
Documents
readme.md
Controlled selection
Multi-select with on_select logging selected ids.
Alpha
Beta
Gamma
Controlled expansion
Pre-expanded branch via open_items.
Root
Child
Disabled items
is_disabled adapter marks rows non-interactive.
Enabled
Disabled
Inline editing
with_editable enables double-click/Enter label edit.
Rename me
Lazy load children
Empty branch fetches children when first expanded.
Lazy branch
Drag reorder
Reorderable rows mutate the in-memory tree order.
One
Two
Virtualized subtree
Large flat lists window visible rows when with_virtualize(true).
Item 0
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
Item 9
Item 10
Item 11
Item 12
Item 13
Item 14
Item 15
Item 16
Item 17
Item 18
Item 19
Item 20
Item 21
Item 22