プラットフォームに依存しない Python アプリケーションを作成しています。今のところ、Linux と OSX で動作します。ただし、プラットフォーム固有のコードを統合したいと考えています。より正確には、ネイティブの通知システム (Growl、Mountain Lion の通知センター、GNOME 通知) を使用したいと考えています。
これまでのところ、GNOME 通知を統合することができました。PyObjC を使用して送信した限り、Mountain Lion の通知は正常に機能します。そして、ここに私が遭遇した大きな問題があります:
PyObjC が適切に機能するためには、 を呼び出す必要がありますAppHelper.runEventLoop()
。そうしないと、通知を送信することはできますが、通知をクリックしたり、スクリプトをコールバックするために Cocoa ライブラリを必要とするものに反応したりできません。しかし、私のアプリケーションはプラットフォームに依存しないはずなので、目的のイベント ループAppHelper.runEventLoop()
ではありません。通知にもかかわらず、私のアプリケーションは GUI アプリケーションではなく、実際には独自のイベント ループがあることに注意してください。
Cocoa イベント ループを実行するための追加のスレッドを作成しようとしましたが、成功しませんでした。
何か案は?