现在我正在为kivy创建一个应用程序GUI,我遇到了以下问题:
当我点击Title" Job"时,有一个菜单,问题是菜单与其他组件重叠(textinput ...)。我怎么能在textinput上显示这个菜单?请参阅图片了解更多详情。
#: import main todo
#: import ListAdapter kivy.adapters.listadapter.ListAdapter
#: import ListItemButton kivy.uix.listview.ListItemButton
Root:
task_input: task_input_view
task_list: tasks_list_view
text_input: text_input
BoxLayout:
orientation: 'vertical'
id: layout
AppMenu:
id: app_menu
top: root.height
cancel_handler_widget: layout
AppMenuTextItem:
text: "Job"
ContextMenu:
ContextMenuTextItem:
text: "Open"
on_release: root.show_load()
ContextMenuTextItem:
text: "Save"
on_release: root.show_save()
ContextMenuTextItem:
text: "SaveAs"
ContextMenuDivider:
ContextMenuTextItem:
text: "Exec"
BoxLayout:
size_hint_y: None
height: "40dp"
TextInput:
id: task_input_view
size_hint_x: 70
Button:
text: "Add"
size_hint_x: 15
on_press: root.add_task()
Button:
text: "Del"
size_hint_x: 15
on_press: root.del_task()
ListView:
id: tasks_list_view
adapter:
ListAdapter(data=[], cls=main.TaskButton)
TextInput:
id: text_input
text: ''
答案 0 :(得分:0)
如何使这种类型的菜单有多个解决方案,但基本上你需要的东西将显示在每个小部件的顶部(或你想要的小部件在后台)。这可以在BoxLayout
中实现,但效率不高。而不是Box,将其设为FloatLayout
并添加处理菜单(该面板)的窗口小部件作为最后一个窗口小部件 - 这样它就会在它之前添加的每个窗口小部件之上,并且菜单应该像所需的那样。 / p>