在 Mac OS 上使用 Rumps python 创建菜单项的子菜单

问题描述 投票:0回答:1

我从这个问题中得到了这个示例代码在Python和OS X中使用Rumps而不创建类

@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()

如何为“关于”菜单项创建一个具有“关于我”、“关于项目”等值的子菜单?

python macos appkit rumps
1个回答
2
投票

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...
添加另一个子菜单,您可以这样做:

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

子菜单项也可以使用

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
充当分隔符并且完全是可选的。

您可以在这里找到一些更多示例

© www.soinside.com 2019 - 2024. All rights reserved.