Kivy的上下文和应用程序菜单
kivy-garden.contextmenu的Python项目详细描述
Kivy上下文菜单
用于轻松创建context和application菜单的类集合。在
请看花园instructions了解如何使用kivy花园花。在
花卉信息
上下文菜单
上下文菜单由ContextMenu
小部件表示,它将所有菜单项包装为ContextMenuTextItem
小部件。上下文菜单可以嵌套,每个ContextMenuTextItem
最多可以包含一个ContextMenu
小部件。在
importkivyfromkivy.appimportAppfromkivy.langimportBuilderimportkivy_garden.contextmenukv="""FloatLayout: id: layout 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 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 ContextMenuTextItem: text: "SubMenu #2" ContextMenuTextItem: text: "SubMenu #3" ContextMenu: ContextMenuTextItem: text: "SubMenu #5" ContextMenuTextItem: text: "SubMenu #6" ContextMenu: ContextMenuTextItem: text: "SubMenu #9" ContextMenuTextItem: text: "SubMenu #10" ContextMenuTextItem: text: "SubMenu #11" ContextMenuTextItem: text: "Hello, World!" on_release: app.say_hello(self.text) ContextMenuTextItem: text: "SubMenu #12" ContextMenuTextItem: text: "SubMenu #7" ContextMenuTextItem: text: "SubMenu #4""""classMyApp(App):defbuild(self):self.title='Simple context menu example'returnBuilder.load_string(kv)defsay_hello(self,text):print(text)self.root.ids['context_menu'].hide()if__name__=='__main__':MyApp().run()
自动创建表示项目具有子菜单的箭头。^{{cd2}你可以使用{cd2}来绑定。在
根上下文菜单可以使用cancel_handler_widget
参数。这将添加on_touch_down
事件,当您单击菜单外的任何位置时,该事件将关闭菜单。在
应用程序菜单
创建应用程序菜单与上下文菜单非常相似。使用AppMenu
和AppMenuTextItem
小部件创建顶层菜单。然后每个AppMenuTextItem
可以包含一个ContextMenu
小部件,正如我们上面看到的。^默认情况下,不带ContextMenu
的{
安装
pip install kivy_garden.contextmenu
使用
所有类
garden.contextmenu
为您提供了一组类和mixin,用于为上下文菜单和应用程序菜单创建自己的自定义菜单项。在
上下文_菜单.抽象菜单
代表所有菜单的基本功能的Mixin类。它不能单独使用,需要用布局进行扩展。提供cancel_handler_widget
属性。请参见AppMenu或ContextMenu。在
上下文_菜单.上下文菜单
上下文菜单的实现。在
上下文_menu.AbstractMenuItem
表示单个菜单项的Mixin类。需要扩展到任何有用的地方。它是上下文菜单和应用程序菜单的所有菜单项的基类。在
如果您想扩展这个类,您需要重写content_width
属性,该属性告诉父项{
上下文_menu.ContextMenuItem
单个上下文菜单项。如果包含ContextMenu
子级,则自动绘制箭头。如果要创建自定义菜单项,请扩展该类。在
上下文_menu.AbstractMenuItemHoverable
Mixin类,它使继承ContextMenuItem
的任何类在鼠标悬停时更改背景色。在
上下文_menu.ContextMenuText菜单
带有Label
小部件的菜单项,没有任何额外功能。在
上下文_menu.ContextMenuVider
小部件/应用程序菜单的两个部分。在
它还包含一个Label
的实例,如果不设置任何文本,则该实例不可见。在
ContextMenuTextItem:text:"SubMenu #33"ContextMenuDivider:text:"More options"ContextMenuTextItem:text:"SubMenu #34"
上下文_menu.ContextMenuTextItem
带文本的菜单项。在大多数情况下,您可以很好地使用这个类来处理所有菜单项。您还可以看到它在all examples here中使用。包含一个Label
小部件,并自动将text
、font_size
和{
应用程序_菜单.AppMenu
应用程序菜单小部件。默认情况下,它填充整个父对象的宽度。在
应用程序_menu.AppMenuTextItem
应用程序菜单项宽度文本。包含一个Label
小部件,并自动将text
、font_size
和{
贡献
查看我们的contribution guide并随时改进花朵。在
许可证
这个软件是根据麻省理工学院的许可条款发布的。 请参阅LICENSE.txt文件。在
- 项目
标签: