在M上使用Rumps python为菜单项创建子菜单

2024-06-01 22:06:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我从这个问题Using Rumps in Python and OS X Without Creating a Class得到了这个示例代码

@rumps.clicked("About")
def about(sender):
    rumps.alert("This is a cool app!")

@rumps.clicked("Preferences")
def about(sender):
    rumps.alert("This is a cool app's settings!")

app = rumps.App("My Toolbar App", title='World, Hello')
app.menu = [
    rumps.MenuItem('About', icon='pony.jpg', dimensions=(18, 18)), 
    'Preferences',
]
app.run()

如何为About menuitem创建一个子菜单,其值为“About Me”、“About the Project”等?在


Tags: appisdefalertthissenderaboutusing
1条回答
网友
1楼 · 发布于 2024-06-01 22:06:30

rumps添加子菜单非常简单-只需将父菜单和子菜单项括在方括号[]中:

app.menu = [
    [rumps.MenuItem("About", icon='pony.jpg', dimensions=(18, 18)), 
    [rumps.MenuItem("About Me"), rumps.MenuItem("About Project"), 
    rumps.MenuItem("etc...")]], 
    None, 
    rumps.MenuItem('Preferences')
]

例如,如果您想为etc...添加另一个子菜单,您可以:

^{pr2}$

子菜单项也可以使用类似JSON的语法,如果子菜单中有很多子菜单项,则可能更易于管理:

app.menu = [
    rumps.MenuItem('About', icon='pony.png', dimensions=(18, 18)), 
    'Preferences',
    None,  # separator
    {'SubMenu':
        {"Child Menu One": ["Item 1", "Item 2"],
         "Child Menu Two": ["Item 1", rumps.MenuItem("Item 2")]}},
    None
]

*None acts as a separator and is entirely optional.

你可以找到一些more examples here。在

相关问题 更多 >