[英]Interactive notification windows 10 using python
我想知道是否可以在 Windows 10 中显示通知,按下时会执行特定操作。 我知道plyer
和win10toast
但在这两个模块中,我都没有看到将其配置为使用点击的方法。 我想要它,以便当我按下它时,将打开一个链接或将运行某些功能,以与tkinter
。 这里关于 SO 的问题现在要么没有答案,要么不兼容。 你们有什么想法吗?
片段 1:
from win10toast import ToastNotifier
noti = ToastNotifier()
noti.show_toast('Random','Hello World',icon_path='ico.ico',duration=60)
此外,尽管给出duration=60
,但它会在大约之后自动关闭。 5秒。
片段 2:
from plyer.utils import platform
from plyer import notification
notification.notify(
title='Here is the title',
message='Here is the message',
app_name='Here is the application name',
app_icon='path/to/the/icon.' + ('ico' if platform == 'win' else 'png')
)
经过一些研究,我发现win10toast
可以与win32gui
一起win32gui
,并且使用它进行一些配置可以使其工作。 但我不确定是什么。
提前致谢
您可以使用callback_on_click
方法在点击通知时执行回调。
正如此线程callback_on_click 安装中所述,您需要安装pip install -e git+https://github.com/Charnelx/Windows-10-Toast-Notifications.git#egg=win10toast
因为callback_on_click
尚未与wintoast
合并。
您将收到错误消息,但您的新版本toastNotifier
将与现有版本一起复制。
您必须导入from src.win10toast.win10toast import ToastNotifier
而不是from win10toast import ToastNotifier
才能访问callback_on_click
方法。
请检查代码段。
from src.win10toast.win10toast import ToastNotifier
import tkinter as tk
from tkinter import *
import webbrowser
top = tk.Tk()
top.geometry('50x50')
top.title('shop')
url = 'http://www.google.com'
def notify():
noti.show_toast('Random','Hello World',duration=60, threaded=True,callback_on_click=action)
def action():
webbrowser.open_new(url)
print("Done")
noti = ToastNotifier()
btn = Button(top, text= "Enter", command=notify)
btn.pack()
top.mainloop()
注意 - 确保在show_toast()
使用threaded=True
以便在 toast 仍然处于活动状态时允许程序的其余部分执行。 否则你的 gui 会冻结。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.