Pārlūkot izejas kodu

Merge branch 'main' into feature/notifications

# Conflicts:
#	nicegui/ui.py
Christoph Trappe 3 gadi atpakaļ
vecāks
revīzija
5a7770b511
3 mainītis faili ar 38 papildinājumiem un 0 dzēšanām
  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')
 
 
 with example(ui.notify):
 with example(ui.notify):
 
 

+ 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.notify import Notify as notify
     from .elements.notify import Notify as notify
     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