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

标签 python gnome pynotify

我刚开始使用 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/

相关文章:

javascript - 如何检测 GNOME AppMenu 上的点击?

ubuntu - Xrandr 显示 "Failed to get size of gamma for output default"

python - 无法在 iPython 笔记本中与文森特一起绘制世界地图

python - Tensorflow CIELAB 颜色空间边界

ubuntu - 我必须使用哪种 gtk 方法来获取 Ubuntu 中的临时路径?

python - 我已经安装了 pynotify,仍然收到错误 no module named pynotify

python - python3.2有python-notify模块吗?

python - pynotify.init 代表什么?

python - Hashlib:在 md5.update() 中使用的 block 的最佳大小

python - 如何在散点图 matplotlib 中缩小图例元素?