使用PyObjC编写独立于平台的Python应用程序

2024-04-27 00:23:56 发布

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

我正在编写一个独立于平台的Python应用程序。目前它运行在Linux和OSX上。但是,我想集成特定于平台的代码。更确切地说,我想使用本地的通知系统(Growl,山狮的通知中心,GNOME通知)。在

到目前为止,我成功地集成了GNOME通知。我用PyObjC来发送山狮通知,效果还不错。我遇到的一个大问题是:

为了让PyObjC正常工作,我需要调用AppHelper.runEventLoop()。否则,我可以发送通知,但我不能在单击通知或任何其他需要Cocoa库回调我的脚本时作出反应。但由于我的应用程序应该是独立于平台的AppHelper.runEventLoop()而不是我想要的事件循环。我应该指出,尽管有通知,我的应用程序不是一个GUI应用程序,事实上它有自己的事件循环。在

我试图创建一个额外的线程来运行Cocoa事件循环,但没有成功。在

有什么想法吗?在


Tags: 代码应用程序linux系统事件pyobjc平台中心
1条回答
网友
1楼 · 发布于 2024-04-27 00:23:56

您应该检查一下PyQt(使用QApplication)处理此问题的方式:http://en.wikibooks.org/wiki/Python_Programming/PyQt4。Qt是一个可靠的跨平台框架,我通常推荐使用它来进行这种类型的开发。在

如果不能选择使用Qt,则可以从NSRunLoop创建自己的主循环抽象,也可以在Windows&Linux中使用它。在

相关问题 更多 >