Quellcode durchsuchen

Merge pull request #4 from zauberzeug/feature/menus

Menu element
c00lc0de vor 3 Jahren
Ursprung
Commit
b87c8cc753
3 geänderte Dateien mit 38 neuen und 0 gelöschten Zeilen
  1. 10 0
      main.py
  2. 27 0
      nicegui/elements/menu.py
  3. 1 0
      nicegui/ui.py

+ 10 - 0
main.py

@@ -287,6 +287,16 @@ with example(ui.dialog):
             ui.button('Close', on_click=dialog.close)
 
     ui.button('Open dialog', on_click=dialog.open)
+    
+with example(ui.menu):
+
+    with ui.menu() as menu:
+        with ui.card():
+            ui.label('Menu item 1')
+            ui.label('Menu item 2')
+            ui.button('Close', on_click=menu.close).props('icon=close text-color=black color=white flat')
+
+    ui.button('Basic menu', on_click=menu.open).props('color=secondary')
 
 lifecycle = '''### Lifecycle
 

+ 27 - 0
nicegui/elements/menu.py

@@ -0,0 +1,27 @@
+import justpy as jp
+from .group import Group
+
+class Menu(Group):
+
+    def __init__(self,
+                 *,
+                 value: bool = False
+                 ):
+        """Menu
+
+        Creates a menu.
+
+        :param value: whether the menu is already opened (default: False)
+        """
+
+        view = jp.QMenu(value=value)
+
+        super().__init__(view)
+
+    def open(self):
+
+        self.view.value = True
+
+    def close(self):
+
+        self.view.value = False

+ 1 - 0
nicegui/ui.py

@@ -15,6 +15,7 @@ class Ui:
     from .elements.link import Link as link
     from .elements.log import Log as log
     from .elements.markdown import Markdown as markdown
+    from .elements.menu import Menu as menu
     from .elements.number import Number as number
     from .elements.radio import Radio as radio
     from .elements.select import Select as select