7

私は python から始めたばかりで、次のように、pynotify を介して gnome-notifications を使用する素敵で小さなスクリプトを自分で作成しました。

import pynotify

pynotify.init("Application") 
alert = pynotify.Notification("Title", "Description") 
alert.show();

これはうまく機能しますが、スクリプトを 2 回続けて実行すると、最初の通知が消えるまでに時間がかかります。2番目はその後に表示されます。スクリプトを2回目に実行すると最初のものは時代遅れになるため、2番目を表示する前にプログラムで最初のものを削除したい(または置き換えたい)。これは可能ですか?

なぜこれが必要なのかを理解するためのちょっとしたコンテキスト: 私はよくマウスを左利きから右利きに、またはその逆に切り替えるので、この設定を反転させて通知で「左利きに切り替えた」ことを知らせるスクリプトが必要です。利き」と「右利きに切り替え」。

4

1 に答える 1

6

しばらく調べてみたところ、この場合は不可能であるという結論に達しました。

Notification.update()を使用して、既存の通知オブジェクトを更新できます。ただし、システムから既存のものを照会して、それらを変更または非表示にすることはできません。シリアル化によってオブジェクトをどこかに保存し、それを復元して更新することが可能な場合があります。ただし、通知がまだ表示されているかどうかをテストする方法がないため、通知の正確な期間と起動時のタイムスタンプを知る必要があります。

使用方法の短いサンプルupdate()。参考までに、pynotifyドキュメントは私にはほとんど存在しないように見えるので:

#!/usr/bin/env python

import pynotify

pynotify.init("MyApplication")

a = pynotify.Notification("Test notification", "Lorem ipsum op")
a.show()
raw_input("Press return to update the notification")
a.update("Updated notification", "Ipsum lorem still op")
a.show()

show()更新後に電話する必要があります。そうしないと、変更が表示されません。

Notificationオブジェクトにはclose()関数もありますが、それは私には何もしません(Linux / Gnomeでは、システムに依存する可能性があります)。

于 2011-08-26T14:55:50.567 に答える