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?

28
demandé sur Roman Rdgz 2013-04-10 12:51:59

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")
38
répondu halex 2013-04-10 09:10:44

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'
)
14
répondu Epoc 2018-01-08 10:28:27

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:

5
répondu cnodell 2017-05-23 10:31:16

dans le système Linux , vous pouvez utiliser la commande intégrée notify-send .

La bibliothèque

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"
3
répondu jeevan 2017-06-06 06:44:09

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)

Resultant of the code

2
répondu Ananth Kumar Vasamsetti 2018-08-31 13:34:24