如何使用 Notify 和 python 只清除一条通知消息?
How do I only clear one notification message using Notify and python?
我写了一个 python 小脚本,它使用通知在发生某些事情时提醒用户。该脚本在基于 cinnamon 或 gnome 的桌面环境中 运行。
脚本的本质是这样的:
from gi.repository import Notify
Notify.init("My Program Name")
notification = Notify.Notification.new("Hi")
notification.show()
Notify.uninit()
Notify.init("My New Program Name")
notification = Notify.Notification.new("Hi")
notification.show()
Notify.uninit()
from subprocess import call
call(['notify-send', 'hello', 'world'])
call(['notify-send', 'hello', 'again'])
如您所见,脚本使用 Notify 发送前两条消息,并使用子进程调用发送最后两条消息。
当您 运行 收到 4 条消息显示为通知时会发生什么。
如果我点击任何一条 "Notify" 消息,它们都会立即被删除。
如果我点击 "subprocess calls" 中的任何一个,它们将被分别删除,具体取决于我点击的是哪个。这是我希望 "Notify" 消息的行为。
正如您在我提供的代码中看到的那样,我尝试使用新的程序名称重新初始化 Notify,以便尝试让消息看起来来自不同的来源,但消息仍然会在无论我点击哪一个都一样。
如何在使用 Notify 时一次只删除一条消息?
(我不能只使用子进程调用,因为我还想向通知添加一个我认为通知发送无法实现的操作。)
我通过添加解决了这个问题:
notification.set_hint('resident', GLib.Variant.new_boolean(True))
这会将通知设置为仅在单击通知时清除。
我写了一个 python 小脚本,它使用通知在发生某些事情时提醒用户。该脚本在基于 cinnamon 或 gnome 的桌面环境中 运行。
脚本的本质是这样的:
from gi.repository import Notify
Notify.init("My Program Name")
notification = Notify.Notification.new("Hi")
notification.show()
Notify.uninit()
Notify.init("My New Program Name")
notification = Notify.Notification.new("Hi")
notification.show()
Notify.uninit()
from subprocess import call
call(['notify-send', 'hello', 'world'])
call(['notify-send', 'hello', 'again'])
如您所见,脚本使用 Notify 发送前两条消息,并使用子进程调用发送最后两条消息。
当您 运行 收到 4 条消息显示为通知时会发生什么。
如果我点击任何一条 "Notify" 消息,它们都会立即被删除。
如果我点击 "subprocess calls" 中的任何一个,它们将被分别删除,具体取决于我点击的是哪个。这是我希望 "Notify" 消息的行为。
正如您在我提供的代码中看到的那样,我尝试使用新的程序名称重新初始化 Notify,以便尝试让消息看起来来自不同的来源,但消息仍然会在无论我点击哪一个都一样。
如何在使用 Notify 时一次只删除一条消息?
(我不能只使用子进程调用,因为我还想向通知添加一个我认为通知发送无法实现的操作。)
我通过添加解决了这个问题:
notification.set_hint('resident', GLib.Variant.new_boolean(True))
这会将通知设置为仅在单击通知时清除。