[英]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.