web-dev-qa-db-ja.com

Ubuntuベースのインストールで通知を表示する

私は、ubuntuベースのOS用の簡単なpythonスクリプトを(試して)書いています。スクリプトの一部として、通知も表示されます。さて、ここでいくつかの投稿を行ってきましたが、それぞれに付随する質問(およびいくつかの問題)があります。以下はさまざまな方法です、私はすでに試しました(および関連する問題)、

notify2の使用

これは大体うまくいきました。ただし、次の問題があるため、

a。何らかの理由で、アイコンが通知バブルに表示されず、エラーはありません。パスを返す簡単なprintステートメントprint(os.path.abspath('icon.svg')は正しいパスを生成しますが、それでも画像は生成されません。

これが私が使用している正確なコードです。

def show_notification(title, content):
    notify2.init(title)
    n = notify2.Notification(title, content, os.path.abspath('icon.svg'))
    n.show()

gi.repository import Notifyからの使用

Hello-unityファイルに続いて here 。 Notifyを使用しようとしました。私はこれをまったく実行することができませんでした!前回試したとき、ImportError: cannot import name Notifyのようなスクリプトを実行するとエラーpython test.pyが発生しました。

python3 test.pyと同じpython3を使用して実行すると、異なるエラーImportError: cannot import name Notify, introspection typelib not foundが発生します。

これを克服するために、python-gobjectlibnotify-binをインストールしようとしましたが、これらはすでにシステム(Elementary OS Loki)にインストールされています。エラーは引き続き発生します。

サブプロセスの使用

これは問題なく機能しましたが、定期的な通知を表示するつもりなので、これが通知を表示する最良の方法であるかどうかはわかりません。これは私が使用したコードです、

import subprocess as s
s.call(['notify-send','foo','bar'])

基本的な質問

Linuxコミュニティ(またはUbuntu)向けに開発しようとするのはこれが初めてなので、Linux開発はかなり初心者です。通知などの単純な(および正しい)実装を検索しようとすると、かなり時間がかかり、混乱を招きます。通知を実装する適切な方法を提案することとは別に、API参照を表示または持っているAndroid開発者ガイドのような正しい方向に誰かが私を指し示すことができれば感謝します。

そして、私の開発の好みについて誰かが尋ねる前に、私はpythonに慣れています。 GUIに関しては、GTKの方が一般的であるように見えますが、どのパスを取るべきかはわかりません。

2
Paritosh

Ubuntuのアプリケーションから通知を呼び出す

subprocess.call()またはsubprocess.Popen()のいずれかを使用した、確実に3番目のもの。 subprocessをインポートすることに注意してください。インストールする新しいものはありません。シンプルで簡単、常に完璧に機能します。

いくつかの例:

  1. 単にテキスト通知:

    subprocess.Popen(["notify-send", "some text"])
    

    enter image description here

  2. タイトルとテキスト:

    subprocess.Popen(["notify-send", "Title", "some text"])
    

    enter image description here

  3. アイコン、タイトル、テキスト:

    img = "/path/to/icon.png"
    subprocess.Popen(["notify-send", "-i", img, "Title", "some text"])
    

    enter image description here

3
Jacob Vlijm