簡體   English   中英

使用 python 的交互式通知窗口 10

[英]Interactive notification windows 10 using python

我想知道是否可以在 Windows 10 中顯示通知,按下時會執行特定操作。 我知道plyerwin10toast但在這兩個模塊中,我都沒有看到將其配置為使用點擊的方法。 我想要它,以便當我按下它時,將打開一個鏈接或將運行某些功能,以與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM