首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中为OSX制作菜单栏(系统托盘)应用程序?

如何在Python中为OSX制作菜单栏(系统托盘)应用程序?
EN

Stack Overflow用户
提问于 2011-12-17 20:50:03
回答 2查看 12.6K关注 0票数 24

在花了相当多的时间寻找菜单栏应用程序的方法后,我们快要承认失败了。

我们基本上只是寻找一个例子/指针如何创建一个应用程序,它将把自己放在菜单栏(时钟旁边的小图标)中,并有一个菜单。一点也不花哨。

这感觉应该是很容易做的事情,但我们还没有找到一个可行的例子。

也许用Python是不可能的?有人知道别人是怎么做的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-01 11:11:21

一种选择是使用rumps,它在PyObjC之上提供了一个抽象级别。我专门为快速生成这些类型的简单状态栏应用程序而编写的。

我希望这能帮助一些人寻找一个简单的,语义的解决方案!

下面是一个简短的示例代码片段。装饰器用于将函数注册为单击事件和计时器的回调。还支持10.8通知。

代码语言:javascript
复制
import rumps

class AwesomeStatusBarApp(rumps.App):
    def __init__(self):
        super(AwesomeStatusBarApp, self).__init__("Awesome App")
        self.menu = ["Preferences", "Silly button", "Say hi"]

    @rumps.clicked("Preferences")
    def prefs(self, _):
        rumps.alert("jk! no preferences available!")

    @rumps.clicked("Silly button")
    def onoff(self, sender):
        sender.state = not sender.state

    @rumps.clicked("Say hi")
    def sayhi(self, _):
        rumps.notification("Awesome title", "amazing subtitle", "hi!!1")

if __name__ == "__main__":
    AwesomeStatusBarApp().run()

票数 36
EN

Stack Overflow用户

发布于 2011-12-18 00:39:29

wxPython将无法添加任务栏项目。您可以使用PyObjC来完成此操作,如下所示:

代码语言:javascript
复制
from AppKit import NSStatusBar
status_item = NSStatusBar.systemStatusBar().statusItemWithLength_(-1) #NSVariableStatusItemLength
status_item.setImage_(<NSImage instance to status icon>)

只需引用NSStatusItem类引用即可对项目进行修改,例如添加菜单、更改突出显示图像等。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8544853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档