46

Python でGrowlのような、Windows のバルーン ヒントのような通知ライブラリを探しています。次のようなコードを書くことを想像してください。

>>> import desktopnotifier as dn
>>> dn.notify('Title', 'Long description goes here')

..そして、Mac、Windows、および Linux で対応するツールチップで通知します。そのようなライブラリは存在しますか?そうでない場合、どうすれば自分で書くことができますか?

  • Mac にはデフォルトの通知機能が付属していますか? Growlは別にインストールする必要がありますか?
  • Windowsでは、これにはpywin32が必要になると思いますか?
  • Linux では、GNOME を前提として、これを行う GNOME API (gnome-python を使用) はありますか?
  • すべてのプラットフォームで通知を「スティッキー」(フェードアウトしない) にすることはできますか?

更新:私の好みは、このような単純なタスクのために PyQT4 や wxPython のような巨大な GUI フレームワークに依存しないことです。

4

8 に答える 8

19

これは、数年前にwxPythonを使用して作成したデスクトップ通知機能です。WindowsとLinuxで同じように動作し、OSXでも実行できるはずです。これには、クリック可能なアイコンとメッセージを含む通知ウィンドウをアニメーション化するために使用できるスレッド化されたイベントループが含まれています。自分の目的に合わせてカスタマイズするには、おそらくいくつかの調整が必要ですが、基本的な作業は完了しています。

于 2010-02-11T12:21:36.813 に答える
17

Pycon 2010 では、クロスプラットフォームの Python 開発に関するプレゼンテーションがありました。それに関する html ページもあり、クロスプラットフォーム通知に関するアドバイスが含まれていました。ただし、オンラインではもう見つかりませんが、ローカル コピーを保存しました。これは通知の一部です。

アプリケーションが何かについてユーザーに通知したい場合があります。ソフトウェアの更新が利用可能である、新しいインスタント メッセージが受信された、300 ページの印刷ジョブが最終的に終了したなどです。

  • 通知をクロスプラットフォームに簡単に移植できるようにするには、通知をインタラクティブにしないでください。たとえば、Ubuntu は、ユーザーの操作を必要とする通知をサポートしていません。

  • これらは最も重要なライブラリです:

    o Linux: pynotify .

    o Mac OS X: 通常、標準ではない Growl がインストールされています。

    o Windows: 優れた wxPython ソリューションは、Andrea Gavanaの ToasterBox です。これは、Firefox または Thunderbird の通知の外観を模倣しています。

  • Phatchでは、これら 3 つのシステムを 1 つの API に統合するライブラリを開発しました: patch/lib/notify.py

リンクされた python ファイルは非常に興味深いものであり、リンクされた python ファイルをほぼそのまま使用できるはずです。コードも非常に明確なので、何をするのかすぐにわかります。

基本的なアプローチは、ほとんどプラットフォームに関係なく、利用可能な通知システムを検出し、特定の順序でそれらを使用しようとしますが、必要に応じてより単純なシステムにフォールバックします。このように、ユーザーがたとえば Growl をインストールしている場合、プラットフォームに関係なくそれを使用します。

上記の 3 つ以外の通知システムのサポートを提供するように適応させることができます。

于 2011-08-16T09:37:38.447 に答える
7
  • 書き方について

    keyringクロスプラットフォームの問題をどのように処理するかを確認します (これは、ストレージ用にさまざまな自動検出されたキーチェーン バックエンドにプラグインする Python ライブラリです)。

  • Growl は OSX にバンドルされていないため、個別にインストールする必要があります。OSX には通知システムが組み込まれていません。

  • Unix の場合は、既に述べたように DBus にフックすることをお勧めします (フォールバックとして、OSX でも dbus を使用できることに注意してください) が、KDE ​​と Gnome の両方に Growl のようなライブラリがあります。それぞれ、KDE ​​の場合は KNotification、Gnome の場合は libnotify です。

  • Windows の場合は、Snarl を確認し、利用できない場合は通知バブルにフォールバックします ( ToasterBoxのラインに沿ったものを使用)

通知をスティッキーにすることなど考えないでください。それはばかげていて、鈍感で、ひどく迷惑です。また、あなたのような人々のために、ほとんどの通知システムで利用できないようになっています.

最後に、これらのいずれにも Python ライブラリがなくても、おそらく を使用ctypesしてそれらにアクセスできます。

于 2010-02-11T07:37:58.460 に答える
3

サイズを気にしない場合は、PyQt4を試してください。

このジョブのクラスは次のとおりです: http://doc.trolltech.com/4.5/qsystemtrayicon.html

于 2010-02-12T04:28:41.280 に答える
2

Windows 用の Growlが必要なようです

于 2010-07-13T18:44:36.087 に答える
0

勝つと、snarlを使用できます。

Pythonでの使用: www.k23productions.com/e107_plugins/forum/forum_viewtopic.php?2972

于 2010-02-11T06:30:52.237 に答える
0

優れたクロスプラットフォームサポートについては、 PyQtを検討します。それはあなたのライブラリにいくらかの重荷を加えるでしょう、しかし彼らはほとんどのねじれを解決するのに良い仕事をしました。

于 2010-02-11T04:24:30.560 に答える