gpt4 book ai didi

python - 如何删除过时的 pynotify 通知?

转载 作者:太空狗 更新时间:2023-10-29 21:47:38 24 4
gpt4 key购买 nike

我刚开始使用 python 并为自己编写了一个漂亮的小脚本,它使用通过 pynotify 的 gnome 通知,像这样:

import pynotify

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

这很好用,但问题是,当我连续两次执行脚本时,第一个通知需要一段时间才能消失。之后显示第二个。由于第一个在我第二次执行脚本时已过时,因此我想在显示第二个(或替换它)之前以编程方式删除第一个。这可能吗?如果可能,如何实现?

一些上下文来理解我为什么需要这个:因为我经常将我的鼠标从左手切换到右手,或者反过来,我想要一个脚本来反转这种偏好并在通知中告诉我“已切换”左撇子”和“转为右撇子”。

最佳答案

我搜索了一会儿,得出的结论是在这种情况下不可能

您可以使用 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 上,可能依赖于系统)。

关于python - 如何删除过时的 pynotify 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com