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.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():
         ui.tree([
             {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},

+ 1 - 1
nicegui/elements/menu.py

@@ -26,7 +26,7 @@ class Menu(ValueElement):
 
 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
 
         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
 
-import justpy as jp
 from nicegui.events import ValueChangeEventArguments, handle_event
 
-from .element import Element
+from ..element import Element
 
 
 class Tree(Element):
+
     def __init__(self, nodes: list, *,
                  node_key: str = 'id',
                  label_key: str = 'label',
                  children_key: str = 'children',
-                 on_select: Optional[Callable] = None):
+                 on_select: Optional[Callable] = None) -> None:
         """Tree
 
         :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 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.toggle import Toggle as toggle
 from .elements.tooltip import Tooltip as tooltip
+from .elements.tree import Tree as tree
 from .notify import notify
 from .page import page
 from .run import run