web-dev-qa-db-fra.com

Python Boîte de message sans énorme dépendance de bibliothèque

Existe-t-il une classe de boîte de message où je peux simplement afficher une boîte de message simple sans une énorme bibliothèque GUI ou une bibliothèque en cas de succès ou d'échec du programme. (Mon script ne fait qu'une chose).

De plus, je n'en ai besoin que pour fonctionner sur Windows.

37
Pwnna

Vous pouvez utiliser la bibliothèque ctypes , qui est installée avec Python:

import ctypes
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Hello', 'Window title', 0)

Le code ci-dessus est pour Python 3.x. Pour Python 2.x, utilisez MessageBoxA au lieu de MessageBoxW as = Python 2 utilise des chaînes non-unicode par défaut.

64
interjay

Il y a également quelques prototypes dans les bibliothèques par défaut sans utiliser de ctypes.

Boîte de message simple:

import win32ui
win32ui.MessageBox("Message", "Title")

Autres options

if win32ui.MessageBox("Message", "Title", win32con.MB_YESNOCANCEL) == win32con.IDYES:
    win32ui.MessageBox("You pressed 'Yes'")

Il y en a aussi un à peu près équivalent dans win32gui et un autre dans win32api. Les documents pour tous semblent être dans C:\Python{nn}\Lib\site-packages\PyWin32.chm

13
Wade Hatler

Le module PyMsgBox utilise le tkinter de Python, il ne dépend donc d'aucun autre module tiers. Vous pouvez l'installer avec pip install pymsgbox.

Les noms des fonctions sont similaires aux fonctions alert(), confirm() et Prompt() de JavaScript:

>>> import pymsgbox
>>> pymsgbox.alert('This is an alert!')
>>> user_response = pymsgbox('What is your favorite color?')
2
Al Sweigart

Vous pouvez également utiliser la classe messagebox de tkinter: from tkinter import messagebox À moins que tkinter ne soit l'énorme interface graphique que vous voulez éviter. L'utilisation est simple, c'est-à-dire: messagebox.FunctionName(title, message [, options]) avec FuntionName dans (showinfo, showwarning, showerror, askquestion, askokcancel, askyesno, askretrycancel).

1
Kurt K

Un moyen rapide et sale consiste à appeler le système d'exploitation et à utiliser la commande "zenity" (le module de sous-processus doit être inclus par défaut dans toute distribution python, zenity est également présent dans tous les principaux linux). Essayez ce court exemple de script, cela fonctionne dans mon Ubuntu 14.04.

import subprocess as SP
# call an OS subprocess $ zenity --entry --text "some text"
# (this will ask OS to open a window with the dialog)
res=SP.Popen(['zenity','--entry','--text',
'please write some text'], stdout=SP.PIPE)
# get the user input string back
usertext=str(res.communicate()[0][:-1])
# adjust user input string 
text=usertext[2:-1]
print("I got this text from the user: %s"%text)

Voir zenity --help pour des dialogues plus complexes

1
Mario Rossi

Celui-ci avec tkinter.

from tkinter import * #required.
from tkinter import messagebox #for messagebox.

App = Tk() #required.
App.withdraw() #for hide window.

print("Message Box in Console")
messagebox.showinfo("Notification", "Hello World!") #msgbox

App.mainloop() #required.
0
ForceVII