回答:
次のように、常にnotify-sendをサブプロセスとして呼び出すことができます。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import subprocess
def sendmessage(message):
subprocess.Popen(['notify-send', message])
return
または、python-notifyをインストールし、それを介して通知を呼び出すこともできます。
import pynotify
def sendmessage(title, message):
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()
return
Ubuntuには利用可能なpython3-notifyパッケージがないことに注意してください。Python 3を使用している場合は、python3-notify2を使用する必要があります。notify2のAPIも同じです。単にに置き換えpynotify
てくださいnotify2
。
pynotify.init("Test")
とpynotify.Notification(title, message).show()
。ちなみに、私は「Pythonを学ぶハードウェイ」なので、何かを見落とすかもしれません
あなたが呼び出すことができながらnotify-send
介して、os.system
またはsubprocess
通知に使用するGTK3ベースのプログラミングと間違いなく、より一貫性があるのGObject-イントロスペクションクラスを。
簡単な例でこれを実際に示します。
from gi.repository import GObject
from gi.repository import Notify
class MyClass(GObject.Object):
def __init__(self):
super(MyClass, self).__init__()
# lets initialise with the application name
Notify.init("myapp_name")
def send_notification(self, title, text, file_path_to_icon=""):
n = Notify.Notification.new(title, text, file_path_to_icon)
n.show()
my = MyClass()
my.send_notification("this is a title", "this is some text")
Popen()
シェルを呼び出してコマンドを実行するため、シェルプロセスもポップアップします。
Mehul Mohanの質問に答え、タイトルとメッセージセクションを含む通知をプッシュする最短の方法を提案するには:
import os
os.system('notify-send "TITLE" "MESSAGE"')
これを関数に入れると、引用符で囲まれたために少し混乱するかもしれません
import os
def message(title, message):
os.system('notify-send "'+title+'" "'+message+'"')
'notify-send "{}" "{}"'.format(title, message)
文字列を追加するのではなく、使用するのはどうですか?
subprocess.Popen(['notify-send', message])
最初の例を動作させるために使用する必要がありました。