Попытайтесь отобразить MDDropDownMenu, когда щелкните значок, чтобы он существовал в MDToolbar - PullRequest
0 голосов
/ 07 мая 2020

У меня проблема с моим кодом, я пытаюсь использовать MDToolBar, который содержится в значке, я хочу, чтобы при щелчке по этому значку отображалось MDDropDownMenu, когда я щелкаю по нему, появляется эта ошибка 'NoneType' object has no attribute 'to_window' если кто-нибудь знает как это решить !! какие-либо предложения !! проблема существует именно в функциях MyApp Class this is main.py

from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivymd.color_definitions import colors
from kivy.core.window import Window
from kivymd.uix.boxlayout import BoxLayout

Window.size = (360, 600)
class Scanner(Screen):   
    pass
class Connecter(Screen):
    pass    
class Search(Screen):
    pass
class Inscrire(Screen):
    pass        
class Apropos(Screen):
    def back_to_scanner(self):
        self.manager.current = 'scanner'
    pass
class Setting(Screen):
    pass
class MyApp(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
    dropdown = ObjectProperty()
    def on_start(self):
        # Create the dropdown menu
        self.dropdown = MDDropdownMenu(width_mult=2)

        # Add items to the menu
        for i in range(6):
            self.dropdown.items.append(
                {"viewclass": "MDMenuItem",
                 "text": "Option " + str(i),
                 "callback": self.option_callback}
            )

    def option_callback(self, text_of_the_option):
        print(text_of_the_option)

    def build(self):
        self.theme_cls.primary_palette = "DeepPurple"
        return Builder.load_file("main.kv")

MyApp().run()

, а это main.kv

#:include kv/inscrire.kv
#:include kv/connecter.kv

<MDMenuItem>:
    on_release: app.change_variable(self.text)
NavigationLayout:
    id: nav_layout

    # ScreenManager:


    ScreenManager:
        id: screen_manager    
        Connecter:
            id: connecter
            name: "connecter"

        Inscrire:
            id: inscrire
            name: "inscrire"   
        Screen:
            BoxLayout:
                orientation: 'vertical'

        Scanner:
            id: scanner
            name: "scanner" 

            MDToolbar:
                title: "Scanner"
                elevation: 10
                left_action_items: [['menu', lambda x: nav_drawer.set_state()]]
                right_action_items: [['magnify', lambda x: scanner.go_to_search()],['dots- vertical',lambda x: app.dropdown.open(x)]]
                pos_hint: {'center_x': .5, 'top': 1} 

...