Skip to content

need a demo without kv language #4

@s0h3ck

Description

@s0h3ck

Let's say we take the example in the README.md and we write it in Python (without kv language).

Two issues:

  • contextmenu stays when you click outside the contextmenu (for example, on the button)
    What I should be expected: it would be hidden when you click something that is not part of the menu.
  • on touch system doesn't stop at the contextmenu (the button gets triggered as well).
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.label import Label

from kivy.garden.contextmenu import AppMenu, AppMenuTextItem, ContextMenu, ContextMenuTextItem

class Test(BoxLayout):

    def __init__(self, **kwargs):
        super(Test, self).__init__(**kwargs)

        layout = BoxLayout(orientation='vertical')

        app_menu = AppMenu(size_hint=(1, None), height=30)

        menu_item_1 = AppMenuTextItem(text="Menu kivy-garden/garden.contextmenu#1")
        menu_item_2 = AppMenuTextItem(text="Menu Menu Menu kivy-garden/garden.contextmenu#2")
        menu_item_3 = AppMenuTextItem(text="Menu Menu kivy-garden/garden.contextmenu#3")
        menu_item_4 = AppMenuTextItem(text="Menu kivy-garden/garden.contextmenu#4")
         
        app_menu.add_widget(menu_item_1)
        app_menu.add_widget(menu_item_2)
        app_menu.add_widget(menu_item_3)
        app_menu.add_widget(menu_item_4)

        context_menu_1 = ContextMenu()
        item_11 = ContextMenuTextItem(text="Item kivy-garden/garden.contextmenu#11")
        item_12 = ContextMenuTextItem(text="Item kivy-garden/garden.contextmenu#12")
         
        context_menu_2 = ContextMenu()
        item_21 = ContextMenuTextItem(text="Item #21")
        item_22 = ContextMenuTextItem(text="Item #22")
        item_23 = ContextMenuTextItem(text="ItemItemItem #23")
        item_24 = ContextMenuTextItem(text="Item #24")

        context_menu_3 = ContextMenu()
        item_241 = ContextMenuTextItem(text="Item #241")
        item_hel = ContextMenuTextItem(text="Hello, World!")
        item_005 = ContextMenuTextItem(text="Item kivy-garden/contextmenu#2")

        context_menu_1.add_widget(item_11)
        context_menu_1.add_widget(item_12)
        context_menu_2.add_widget(item_21)
        context_menu_2.add_widget(item_22)
        context_menu_2.add_widget(item_23)
        context_menu_2.add_widget(item_24)
        context_menu_3.add_widget(item_241)
        context_menu_3.add_widget(item_hel)
        context_menu_3.add_widget(item_005)

        menu_item_1.add_widget(context_menu_1)
        menu_item_2.add_widget(context_menu_2)
        menu_item_3.add_widget(context_menu_3)
        
        context_menu_1._on_visible(False)
        context_menu_2._on_visible(False)
        context_menu_3._on_visible(False)

        layout.add_widget(app_menu)
        button = Button(text="Button")
        layout.add_widget(button)
         
        layout.canvas.remove(button.canvas)
        layout.canvas.insert(0,button.canvas)

        self.add_widget(layout)

class TestApp(App):
    def build(self):
        return Test()

if __name__ == "__main__":
    app = TestApp()
    app.run()

Maybe we could take inspiration from NavigationDrawer to improve this garden repository. It could involve some changes.

We will appreciate any suggestions.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions