from kivy.lang import Builder from kivy.metrics import sp from kivy.properties import ObjectProperty, NumericProperty from kivy.uix.boxlayout import BoxLayout from kivymd.app import MDApp from kivymd.uix.menu import MDDropdownMenu, RightContent class AnalysisDropdownMenuRightContent(RightContent): font_size = NumericProperty(sp(16)) class AnalysisDropdownMenu(MDDropdownMenu): pass ANALYSIS_ICONS = ["git", "git", "git", "git"] ANALYSIS_OPTIONS = ["analysis:extra", "analysis:equalize", "analysis:sweep", "analysis:aimove"] ANALYSIS_SHORTCUTS = ["a", "s", "d", "Enter"] class MenuOpener(BoxLayout): analysis_button = ObjectProperty(None) def __init__(self, **kwargs): super().__init__(**kwargs) menu_items = [ {"icon": icon, "text": text, "right_content_cls": AnalysisDropdownMenuRightContent(text=shortcut)} for icon, text, shortcut in zip(ANALYSIS_ICONS, ANALYSIS_OPTIONS, ANALYSIS_SHORTCUTS) ] self.analysis_menu = AnalysisDropdownMenu(caller=self.analysis_button, items=menu_items, width_mult=6, use_icon_item=False, callback=lambda _: print(_),) # self.analysis_menu.create_menu_items() # for item in self.analysis_menu.menu.ids.box.children: # item.ids._right_container.padding = [100,0,0,0] def open_analysis_menu(self): self.analysis_menu.open() KV = """