可滚动上下文菜单Kivy

时间:2019-01-06 23:31:25

标签: python kivy contextmenu

我遇到一个问题,要通过从数据库中提取数据来动态填充上下文菜单。但是,上下文菜单从屏幕上方溢出。

是否可以使其滚动或使上下文菜单向下而不是向上填充?

enter image description here

这是我的文件:

from kivy.lang import Builder
from UltimateDropDown import UltimateDropDownApp
from Database import Database
if __name__ == '__main__':
    db = Database()
    db.populateChangeTypes()
    kv = """
#: import HoverLabel HoverBehavior
#: import ContextMenu kivy.garden.contextmenu

UltimateDropDown:

<UltimateDropDown>:
    id: layout

    ModifiedHoverLabel:
        id: hover_label
        pos: 10, self.parent.height - self.height - 10
        text: "Left click anywhere outside the context menu to close it"
        size_hint: None, None
        size: self.texture_size
        on_enter: context_menu.show(*app.root_window.mouse_pos)

    Button:
        size_hint: None, None
        pos_hint: {"center_x": 0.5, "center_y": 0.8 }
        size: 300, 40
        text: "Click me to show the context menu"
        on_release: context_menu.show(*app.root_window.mouse_pos)

    ContextMenu:
        id: context_menu
        visible: False
        cancel_handler_widget: layout
"""
    str_list = []
    for item in db.changeTypeToId:
        str_list.append("""
        ContextMenuTextItem:
            text: """ + '"{0}"'.format(item) + """""")
    kv += ''.join(str_list)
    Builder.load_string(kv)
    udda = UltimateDropDownApp()
    udda.run()

这里唯一相关的代码是Kivy Garden上下文菜单(来自GitHub)。

附加说明:如果菜单项少于20个,则上下文菜单看起来不错。当我溢出时开始向上填充。

0 个答案:

没有答案