Des boîtes d'alerte en Python?

est-il possible de produire une alerte similaire à celle de JavaScript("message") en python, avec une application fonctionnant comme un démon.

cela sera exécuté sous Windows, très probablement XP mais 2000 et Vista sont aussi des possibilités très réelles.

mise à Jour:

Ceci est destiné à s'exécuter en arrière-plan et alerte l'utilisateur lorsque certaines conditions sont remplies, je me dis que la meilleure façon d'alerter l'utilisateur serait de produire un pop-up, comme il doit être manipulé immédiatement, et d'autres options comme l'exploitation forestière, ou l'envoi d'un e-mail ne sont pas assez efficaces.

22
demandé sur UnkwnTech 2008-10-07 09:08:36

4 réponses

qu'en ceci:

import win32api

win32api.MessageBox(0, 'hello', 'title')

en Outre:

win32api.MessageBox(0, 'hello', 'title', 0x00001000) 

fera apparaître la boîte sur les autres fenêtres, pour les messages urgents. Voir fonction MessageBox pour les autres options.

43
répondu user 2012-05-28 11:19:30

GTK peut être une meilleure option, car il est multi-plateforme. Cela fonctionne très bien sur Ubuntu, et devrait fonctionner très bien sur Windows lorsque les fixations GTK et Python sont installées.

from gi.repository import Gtk

dialog = Gtk.MessageDialog(None, 0, Gtk.MessageType.INFO,
            Gtk.ButtonsType.OK, "This is an INFO MessageDialog")
dialog.format_secondary_text(
    "And this is the secondary text that explains things.")
dialog.run()
print "INFO dialog closed"

Vous pouvez voir d'autres exemples ici. (pdf)

les arguments passés devraient être le gtk.fenêtre parent (ou Aucun), DestroyWithParent, type de Message, Message-boutons, titre.

3
répondu NoBugs 2013-12-09 01:14:00

vous pouvez utiliser la bibliothèque win32 En Python, c'est un exemple classique de OK ou D'Cancel.

import win32api
import win32com.client
import pythoncom

result = win32api.MessageBox(None,"Do you want to open a file?", "title",1)

if result == 1:
 print 'Ok'
elif result == 2:
 print 'cancel'

La collection:

win32api.MessageBox(0,"msgbox", "title")
win32api.MessageBox(0,"ok cancel?", "title",1)
win32api.MessageBox(0,"abort retry ignore?", "title",2)
win32api.MessageBox(0,"yes no cancel?", "title",3)
1
répondu Tabares 2012-08-06 15:23:17

démarrer une application comme un processus de fond qui soit a un port TCP lié à localhost, ou communique à travers un fichier -- votre démon a le fichier ouvert, et puis vous echo "foo" > c:\your\file. Après, disons, 1 seconde de aucune activité, vous affichez le message et tronquez le fichier.

-2
répondu Mikael Jansson 2008-10-07 05:30:52