Преглед на файлове

Menu element

- Adds a menu element
Christoph Trappe преди 3 години
родител
ревизия
1ef2663181
променени са 3 файла, в които са добавени 38 реда и са изтрити 0 реда
  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')
+
+    ui.button('Basic menu', on_click=menu.open)
 
 
 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