浏览代码

update ui.tree

Falko Schindler 2 年之前
父节点
当前提交
0a522929b0
共有 4 个文件被更改,包括 15 次插入16 次删除
  1. 1 1
      api_docs_and_examples.py
  2. 1 1
      nicegui/elements/menu.py
  3. 12 14
      nicegui/elements/tree.py
  4. 1 0
      nicegui/ui.py

+ 1 - 1
api_docs_and_examples.py

@@ -377,7 +377,7 @@ To overlay an SVG, make the `viewBox` exactly the size of the image and provide
             scene.text('2D', 'background: rgba(0, 0, 0, 0.2); border-radius: 5px; padding: 5px').move(z=2)
             scene.text('2D', 'background: rgba(0, 0, 0, 0.2); border-radius: 5px; padding: 5px').move(z=2)
             scene.text3d('3D', 'background: rgba(0, 0, 0, 0.2); border-radius: 5px; padding: 5px').move(y=-2).scale(.05)
             scene.text3d('3D', 'background: rgba(0, 0, 0, 0.2); border-radius: 5px; padding: 5px').move(y=-2).scale(.05)
 
 
-    # @example(ui.tree)
+    @example(ui.tree, skip=False)
     def tree_example():
     def tree_example():
         ui.tree([
         ui.tree([
             {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},
             {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},

+ 1 - 1
nicegui/elements/menu.py

@@ -26,7 +26,7 @@ class Menu(ValueElement):
 
 
 class MenuItem(TextElement):
 class MenuItem(TextElement):
 
 
-    def __init__(self, text: str = '', on_click: Optional[Callable] = None, *, auto_close: bool = True):
+    def __init__(self, text: str = '', on_click: Optional[Callable] = None, *, auto_close: bool = True) -> None:
         """Menu Item
         """Menu Item
 
 
         A menu item to be added to a menu.
         A menu item to be added to a menu.

+ 12 - 14
nicegui/elements/old/tree.py → nicegui/elements/tree.py

@@ -1,17 +1,17 @@
 from typing import Callable, Optional
 from typing import Callable, Optional
 
 
-import justpy as jp
 from nicegui.events import ValueChangeEventArguments, handle_event
 from nicegui.events import ValueChangeEventArguments, handle_event
 
 
-from .element import Element
+from ..element import Element
 
 
 
 
 class Tree(Element):
 class Tree(Element):
+
     def __init__(self, nodes: list, *,
     def __init__(self, nodes: list, *,
                  node_key: str = 'id',
                  node_key: str = 'id',
                  label_key: str = 'label',
                  label_key: str = 'label',
                  children_key: str = 'children',
                  children_key: str = 'children',
-                 on_select: Optional[Callable] = None):
+                 on_select: Optional[Callable] = None) -> None:
         """Tree
         """Tree
 
 
         :param nodes: hierarchical list of node objects
         :param nodes: hierarchical list of node objects
@@ -20,14 +20,12 @@ class Tree(Element):
         :param children_key: property name of each node object that holds its list of children (default: "children")
         :param children_key: property name of each node object that holds its list of children (default: "children")
         :param on_click: callback which is invoked when the node selection changes
         :param on_click: callback which is invoked when the node selection changes
         """
         """
-
-        view = jp.QTree(nodes=nodes, node_key=node_key, label_key=label_key, children_key=children_key, temp=False)
-        super().__init__(view)
-
-        def process_event(view, event) -> Optional[bool]:
-            arguments = ValueChangeEventArguments(sender=self, socket=event.get('websocket'), value=event.get('value'))
-            return handle_event(on_select, arguments)
-
-        view.on('update:selected', process_event)
-        view.on('update:expanded', lambda *_: self.update())
-        view.on('update:ticked', lambda *_: self.update())
+        super().__init__('q-tree')
+        self._props['nodes'] = nodes
+        self._props['node-key'] = node_key
+        self._props['label-key'] = label_key
+        self._props['children-key'] = children_key
+
+        self.on('update:selected',
+                lambda msg: handle_event(on_select,
+                                         ValueChangeEventArguments(sender=self, client=self.client, value=msg['args'])))

+ 1 - 0
nicegui/ui.py

@@ -30,6 +30,7 @@ from .elements.slider import Slider as slider
 from .elements.switch import Switch as switch
 from .elements.switch import Switch as switch
 from .elements.toggle import Toggle as toggle
 from .elements.toggle import Toggle as toggle
 from .elements.tooltip import Tooltip as tooltip
 from .elements.tooltip import Tooltip as tooltip
+from .elements.tree import Tree as tree
 from .notify import notify
 from .notify import notify
 from .page import page
 from .page import page
 from .run import run
 from .run import run