Saya mencoba membuat program dasar yang menjalankan sepotong kode ketika saya mengklik notifikasi toast di windows 10. Saya menggunakan win10toast untuk ini, dan menggunakan metode 'callback_on_click' untuk mendapatkan klik.

Setelah sedikit Googling, saya menemukan jawaban ini di sini:

Implementasi saat klik sangat mudah - cukup berikan callable (dalam hal ini fungsi yang tidak menerima argumen apa pun) sebagai nilai parameter metode show_toast yang disebut callback_on_click.

Ini kode saya:

import win10toast

def say_hello():
    toaster = win10toast.ToastNotifier()
    toaster.show_toast("Hello World!", "This is a test message from python", threaded=True, callback_on_click=say_hello)

def click_message():
    toaster = win10toast.ToastNotifier()
    print("Button clicked")
    toaster.show_toast("Hello World!", "You clicked the message! Nice!")

if __name__ == "__main__":
    say_hello()

Ketika saya menjalankan ini, saya mendapatkan: TypeError: show_toast() got an unexpected keyword argument 'callback_on_click'

Saya telah mencoba menggunakan pipenv install git+https://github.com/Charnelx/Windows-10-Toast-Notifications.git#egg=win10toast, tetapi ketika saya melakukannya saya mendapatkan kesalahan lain:

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

This is likely caused by a bug in win10toast. Report this to its maintainers.
Installation Failed

Ada yang tahu apa masalah saya?

0
NinjaPixels 1 Juli 2020, 00:08

1 menjawab

Jawaban Terbaik

Saya memiliki masalah yang sama. Ini karena metode callback_on_click belum digabungkan ke dalam repo win10toast di PyPi. Saya mengatasi masalah ini dengan menarik versi cabang dengan metode menggunakan perintah ini.

pip install -e git+https://github.com/Charnelx/Windows-10-Toast-Notifications.git#egg=win10toast

Ada pesan keluar kesalahan selama pembuatan karena file setup.py, namun, kelas toastNotifier yang berfungsi akan disalin. Versi baru dari modul dapat diakses dengan perintah ini.

from src.win10toast.win10toast import ToastNotifier

Dengan ini, saya dapat membuat instance toastNotifier dan menggunakan metode callback_on_click yang disumbangkan Charnelx.

2
Patrick Mogianesi 4 Agustus 2020, 21:58