使用 python 的带有按钮的 Windows 通知

And*_*_ye 4 python windows winapi notifications button

我需要制作一个通过 Windows 通知提醒我的程序,我发现这可以通过以下代码简单地完成。

我不在乎我使用什么库

from win10toast import ToastNotifier
toast = ToastNotifier()
toast.show_toast("alert","text")
Run Code Online (Sandbox Code Playgroud)

此代码提供以下警报

在此处输入图片说明

但是,我希望通知上有一个按钮,这样我就可以点击它,它会引导我到一个 url。

在此处输入图片说明

像这个例子。

这可能吗?

我刚刚找到了这个关于toast 内容的网站,谁能帮我用 python 使用它?

And*_*bie 9

当前发布的Windows-10-Toast-Notifications版本不支持此类行为。但是,贡献者创建了一个拉取请求,该请求为一个callback_on_click参数添加了功能,该功能将在单击通知时调用一个函数。

这尚未合并到主分支中,考虑到库更新已经过去了多长时间,我不会指望它会很快发生。但是,您仍然可以安装此库的修改版本以利用此功能:

  • 首先,您需要win10toast从您的环境中卸载 的当前版本(例如,pip uninstall win10toast)。
  • 接下来,您需要安装修改后的版本(例如,pip install git+https://github.com/Charnelx/Windows-10-Toast-Notifications.git#egg=win10toast)。

然后,您可以创建这样的吐司:

toast.show_toast(title="Notification", msg="Hello, there!", callback_on_click=your_callback_function)
Run Code Online (Sandbox Code Playgroud)

一个完整的工作示例:

from win10toast import Toast

toast = ToastNotifier()
toast.show_toast(title="Notification", msg="Hello, there!", callback_on_click=lambda: print("Clicked!"))
Run Code Online (Sandbox Code Playgroud)

当您点击通知时,您应该会看到“已点击!” 出现在 Python 控制台中。

重要提示:这仅在您使用我上面提到的库的修改版本时才有效。否则你会得到错误:TypeError: show_toast() got an unexpected keyword argument 'callback_on_click'.