【问题标题】:Regarding win10toast and win10toast-click, I have an issue with the Notification Center关于win10toast和win10toast-click,通知中心有问题
【发布时间】:2021-08-06 18:31:53
【问题描述】:

我遇到了关于 Python 和 Windows 10 吐司通知的问题。我想做的是一个可以点击的窗口吐司,如果我不点击它就会进入通知中心。

我知道win10toastwin10toast-click 的存在。问题是win10toast 不支持callback_on_clickwin10toast-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-clickwin10toast 的代码,而duration 的唯一区别似乎是if duration is not None:。但对我来说,看起来win10toast-click 应该支持duration=Nonewin10toast 应该会引发错误,因为它会尝试运行sleep(None)
  • @furas 是的,win10toast 确实会引发此错误,但对于 win10toast-click,是的,没有引发错误,但它会消失而不是进入通知中心
  • 也许它是线索 - 当它引发错误时,它无法关闭它并进入通知中心 - 所以这是错误,而不是官方方法。
  • 我认为如果你从win10toast-click 中删除if duration is not None: 那么它也会引发错误,也许它会像win10toast 一样工作

标签: python python-3.x windows notifications toast


【解决方案1】:

好吧,对于和我有同样问题的人,我刚刚找到了完美的解决方案,可以满足您的所有需求。

最近有一个名为 winotify 的库位于通知中心,高度可定制,可以打开默认浏览器的链接。

扔掉win10toast,去winotify

源码:winotify's GitHub page

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2014-01-18
    • 2023-03-28
    相关资源
    最近更新 更多