【发布时间】:2021-08-06 18:31:53
【问题描述】:
我遇到了关于 Python 和 Windows 10 吐司通知的问题。我想做的是一个可以点击的窗口吐司,如果我不点击它就会进入通知中心。
我知道win10toast 和win10toast-click 的存在。问题是win10toast 不支持callback_on_click 和win10toast-click 不支持Duration=None 参数,该参数允许通知在未单击的情况下进入通知中心。我想找到一个简单的方法来做这两个,但很遗憾我做不到,因为我没有合并这两个库所需的技能。
代码如下:
from win10toast-click import ToastNotifier
def test():
print('test')
toast = ToastNotifier()
toast.show_toast(
'Notification title',
'Notification body',
duration=None,
icon_path='icon.ico',
callback_on_click=test
) # Does not stand in the Notification Center
from win10toast import ToastNotifier
def test():
print('test')
toast = ToastNotifier()
toast.show_toast(
'Notification title',
'Notification body',
duration=None,
icon_path='icon.ico'
) # Stands in the Notification Center but does not support callback
你们有什么想法吗? 提前谢谢你...
【问题讨论】:
-
首先我会挖掘源代码来看看它是如何工作的。也许它只需要将某个功能的某些部分复制到另一个功能。我希望复制
callback_on_click会更简单,因为duration可能需要一些计时器,它可能必须在thread中运行并且它可能有更多代码。 -
您有win10toast-click 和win10toast 的代码,而
duration的唯一区别似乎是if duration is not None:。但对我来说,看起来win10toast-click应该支持duration=None和win10toast应该会引发错误,因为它会尝试运行sleep(None) -
@furas 是的,win10toast 确实会引发此错误,但对于 win10toast-click,是的,没有引发错误,但它会消失而不是进入通知中心
-
也许它是线索 - 当它引发错误时,它无法关闭它并进入通知中心 - 所以这是错误,而不是官方方法。
-
我认为如果你从
win10toast-click中删除if duration is not None:那么它也会引发错误,也许它会像win10toast一样工作
标签: python python-3.x windows notifications toast