#!/usr/bin/env python # coding: utf-8 # # ipytree: Interactive tree view based on ipywidgets # # ## https://github.com/QuantStack/ipytree/ # # # ipytree is a jupyter interactive widget library which provides a tree widget to the Jupyter notebook. # # - MIT Licensed # # **Installation:** # # ```bash # conda install -c conda-forge ipytree # ``` # ## Create a tree # In[ ]: from ipywidgets import Text, link from ipytree import Tree, Node # In[ ]: tree = Tree() tree.add_node(Node('node1')) node2 = Node('node2') tree.add_node(node2) tree # In[ ]: node3 = Node('node3', disabled=True) node4 = Node('node4') node5 = Node('node5', [Node('1'), Node('2')]) node2.add_node(node3) node2.add_node(node4) node2.add_node(node5) # ## Change node name # In[ ]: name = Text('node3') link((name, 'value'), (node3, 'name')) name # ## Change node icon # In[ ]: node4.icon = 'archive' node4.icon_style = 'warning' # ## Handle click # In[ ]: def handle_click(event): event['owner'].name = 'I am selected!!!' if event['new'] else 'I am not selected...' node4.observe(handle_click, 'selected') node4.selected = True