Python Notify.Notification中的PyGObject进度条
我将PyGObject与Python3一起使用,我想使用一个Python Notify.Notification中的PyGObject进度条,python,python-3.x,notifications,gtk3,pygobject,Python,Python 3.x,Notifications,Gtk3,Pygobject,我将PyGObject与Python3一起使用,我想使用一个Notify.notification来显示一个通知,其中有一个进度条。进度条不需要自己/异步地更新,也不需要任何东西——它可以(也应该)是静态的,只有在我手动设置一个新值然后告诉通知显示时才会更新。我想要的是一个卷通知,在您更改时显示新卷 我一直无法找到任何方法来搜索文档,例如,是否可以使用PyGObject?或者,是否有另一个Python 3库允许这种行为 我目前正在显示基于文本的进度通知,如下所示: import gi gi.re
Notify.notification
来显示一个通知,其中有一个进度条。进度条不需要自己/异步地更新,也不需要任何东西——它可以(也应该)是静态的,只有在我手动设置一个新值然后告诉通知显示时才会更新。我想要的是一个卷通知,在您更改时显示新卷
我一直无法找到任何方法来搜索文档,例如,是否可以使用PyGObject?或者,是否有另一个Python 3库允许这种行为
我目前正在显示基于文本的进度通知,如下所示:
import gi
gi.require_version('Notify', '0.7')
from gi.repository import Notify
def __init___(self):
...
Notify.init("Progress")
self.notification = Notify.Notification(summary='Progress', body='0%')
self.notification.set_image_from_pixbuf(notification_image)
...
def on_progress_update(self, progress):
...
self.notification.update('Progress', str(progress) + '%', None)
self.notification.show()
...
因此,在进行了更多搜索之后,我在xfce论坛上找到了讨论使用send notify获取xfce4 notifyd“仪表”的线程,并找到了如何使用
notify.Notification.set_hint()
。因此,如果希望通知显示进度条/状态条/仪表,可以使用以下命令:
import gi
gi.require_version('Notify', '0.7')
from gi.repository import GLib, Notify
Notify.init("Name")
notification = Notify.Notification()
notification.set_hint('value', GLib.Variant.new_int32(volume))
注意事项:
- 如原问题所示,如果使用此方法,设置摘要和正文似乎毫无意义,因为它们都不显示,只显示进度条。图标/图像仍然可以显示在进度条的旁边,例如带有
通知。从\u pixbuf()设置\u image\u
- GLib.Variant类型可以是
,int32
,int64
,也可能是比double
大的数字类型,但不能是int32
或byte
,任何int16
类型,如uint
,或者(我假设)任何非数字类型。只要使用uint32
,我就知道了int32
- 当我在其他步骤中使用像
这样的通用名称时,Name
的值必须是set\u hint
,小写为v'value'
dbus monitor
并更改音量,应该在线路的某个位置打印类似的内容,因为所有通知都是通过dbus创建的:
method call time=1598625454.708735 sender=:1.75 -> destination=:1.81 serial=23739 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
string "Xfce volume control"
uint32 0
string "audio-volume-medium-symbolic"
string "Volume 46%"
string ""
array [
]
array [
dict entry(
string "transient"
variant boolean true
)
dict entry(
string "x-canonical-private-synchronous"
variant string ""
)
dict entry(
string "value"
variant int32 46
)
]
int32 2000
以下是生成progressbar的提示名称和值:
dict entry(
string "value"
variant int32 46
)