Răsfoiți Sursa

Merge pull request #4 from zauberzeug/feature/menus

Menu element
c00lc0de 3 ani în urmă
părinte
comite
b87c8cc753
3 a modificat fișierele cu 38 adăugiri și 0 ștergeri
  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('Close', on_click=dialog.close)
 
 
     ui.button('Open dialog', on_click=dialog.open)
     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
 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.link import Link as link
     from .elements.log import Log as log
     from .elements.log import Log as log
     from .elements.markdown import Markdown as markdown
     from .elements.markdown import Markdown as markdown
+    from .elements.menu import Menu as menu
     from .elements.number import Number as number
     from .elements.number import Number as number
     from .elements.radio import Radio as radio
     from .elements.radio import Radio as radio
     from .elements.select import Select as select
     from .elements.select import Select as select