Python kullanarak etkileşimli bildirim pencereleri 10
Basıldığında belirli bir eylemi gerçekleştiren Windows 10 ile bildirim göstermenin mümkün olup olmadığını bilmek istedim. Ben plyerve win10toastbu modüllerin her ikisinde de onu tıklamalarla çalışacak şekilde yapılandırmanın bir yolunu göremiyorum. İstedim ki, bastığımda bir bağlantı açılacak veya çalışmak için bazı işlevler çalıştırılacak tkinter. SO ile ilgili bu konudaki sorular şu anda ya cevapsız ya da uyumsuz. Herhangi bir fikriniz var mı?
Snippet 1:
from win10toast import ToastNotifier
noti = ToastNotifier()
noti.show_toast('Random','Hello World',icon_path='ico.ico',duration=60)
Ayrıca, duration=60her iki şekilde de verilmesine rağmen yakl. 5 saniye.
Snippet 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')
)
Bazı araştırmalardan sonra , win10toastbununla ilgili işler buldum win32guive onunla bazı yapılandırmalar işe yarayabilir. Ama ne olduğundan emin değilim.
Şimdiden teşekkürler
Yanıtlar
callback_on_clickBildirime tıklayarak bir geri arama gerçekleştirmek için yöntemi kullanabilirsiniz .
Bu iş parçacığı callback_on_click kurulumunda belirtildiği pip install -e git+https://github.com/Charnelx/Windows-10-Toast-Notifications.git#egg=win10toastgibi callback_on_click, henüz birleştirilmemiş olarak yüklemeniz gerekir wintoast.
Bir hata alacaksınız ancak yeni sürümünüz toastNotifiermevcut sürümle kopyalanacak.
Yönteme erişmek için inorder from src.win10toast.win10toast import ToastNotifieryerine içe aktarmanız gerekir .from win10toast import ToastNotifiercallback_on_click
Lütfen pasajı kontrol edin.
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()
NOT - Tost etkinken programınızın geri kalanının yürütülmesine izin verilmesi için threaded=Truein kullandığınızdan emin olun show_toast(). Aksi takdirde kullanıcı arayüzünüz donar.