Comment créer un message popup de plateau de système avec python? (Windows)
j'aimerais savoir comment créer un message popup de plateau de système avec python. J'ai vu ceux dans beaucoup de softaware, mais encore difficile de trouver des ressources pour le faire facilement avec n'importe quelle langue. Quelqu'un connait une bibliothèque pour faire ça en Python?
5 réponses
à l'aide du pywin32
bibliothèque vous pouvez utiliser le code d'exemple suivant que j'ai trouvé ici :
from win32api import *
from win32gui import *
import win32con
import sys, os
import struct
import time
class WindowsBalloonTip:
def __init__(self, title, msg):
message_map = {
win32con.WM_DESTROY: self.OnDestroy,
}
# Register the Window class.
wc = WNDCLASS()
hinst = wc.hInstance = GetModuleHandle(None)
wc.lpszClassName = "PythonTaskbar"
wc.lpfnWndProc = message_map # could also specify a wndproc.
classAtom = RegisterClass(wc)
# Create the Window.
style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
self.hwnd = CreateWindow( classAtom, "Taskbar", style, \
0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \
0, 0, hinst, None)
UpdateWindow(self.hwnd)
iconPathName = os.path.abspath(os.path.join( sys.path[0], "balloontip.ico" ))
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
try:
hicon = LoadImage(hinst, iconPathName, \
win32con.IMAGE_ICON, 0, 0, icon_flags)
except:
hicon = LoadIcon(0, win32con.IDI_APPLICATION)
flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "tooltip")
Shell_NotifyIcon(NIM_ADD, nid)
Shell_NotifyIcon(NIM_MODIFY, \
(self.hwnd, 0, NIF_INFO, win32con.WM_USER+20,\
hicon, "Balloon tooltip",msg,200,title))
# self.show_balloon(title, msg)
time.sleep(10)
DestroyWindow(self.hwnd)
def OnDestroy(self, hwnd, msg, wparam, lparam):
nid = (self.hwnd, 0)
Shell_NotifyIcon(NIM_DELETE, nid)
PostQuitMessage(0) # Terminate the app.
def balloon_tip(title, msg):
w=WindowsBalloonTip(title, msg)
if __name__ == '__main__':
balloon_tip("Title for popup", "This is the popup's message")
j'ai récemment utilisé le paquet Plyer pour créer des notifications multiplateformes sans douleur, en utilisant la façade Notification
(il a beaucoup d'autres choses intéressantes qui valent la peine de jeter un oeil).
assez facile à utiliser:
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.png'
)
vous aurez besoin d'utiliser une bibliothèque GUI python tierce partie ou la bibliothèque pywin32. TkInter, la boîte à outils GUI fournie avec python ne supporte pas les pop ups de plateau système.
bibliothèques neutres multiforme qui supportent le travail avec le plateau de système:
- wxPython
- PyGTK
- PyQT
Windows bibliothèque spécifique qui prend en charge le travail avec le système plateau:
- pywin32
Information/exemple de barre d'état système pop-ups à l'aide de wxpython sur windows:
dans le système Linux , vous pouvez utiliser la commande intégrée notify-send
.
ntfy
peut être utilisée pour envoyer des notifications push.
cliquez ici pour ntfy documentation
installation:
sudo pip install ntfy
exemples:
ntfy send "your message!"
ntfy send -t "your custom title" "your message"
Voici la façon simple d'afficher les notifications sur windows 10 en utilisant python: module win10toast .
Exigences :
- pypiwin32
- setuptools
Installation :
>> pip install win10toast
exemple :
from win10toast import ToastNotifier
toaster = ToastNotifier()
toaster.show_toast("Demo notification",
"Hello world",
duration=10)