プログラムの成功または失敗時に、巨大なGUIライブラリやライブラリのない単純なメッセージボックスを表示できるメッセージボックスクラスはありますか。 (私のスクリプトは1つのことしかしません)。
また、Windowsでのみ実行する必要があります。
Pythonと共にインストールされる ctypes ライブラリを使用できます。
import ctypes
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Hello', 'Window title', 0)
上記のコードはPython 3.x用です。 Python 2.xの場合、Python 2はデフォルトで非Unicode文字列を使用するため、MessageBoxA
の代わりにMessageBoxW
を使用します。
Ctypesを使用せずにデフォルトのライブラリでプロトタイプ化されたカップルもあります。
シンプルなメッセージボックス:
import win32ui
win32ui.MessageBox("Message", "Title")
他のオプション
if win32ui.MessageBox("Message", "Title", win32con.MB_YESNOCANCEL) == win32con.IDYES:
win32ui.MessageBox("You pressed 'Yes'")
また、win32guiとwin32apiにほぼ同等のものがあります。すべてのドキュメントはC:\Python{nn}\Lib\site-packages\PyWin32.chm
PyMsgBoxモジュールはPythonのtkinterを使用しているため、他のサードパーティモジュールに依存しません。 _pip install pymsgbox
_でインストールできます。
関数名は、JavaScriptのalert()
、confirm()
、およびPrompt()
関数に類似しています。
_>>> import pymsgbox
>>> pymsgbox.alert('This is an alert!')
>>> user_response = pymsgbox('What is your favorite color?')
_
また、tkinterのmessageboxクラスを使用することもできます:tkinterが避けたい巨大なGUIでない限り、_from tkinter import messagebox
_。使い方は簡単です。つまり、messagebox.FunctionName(title, message [, options])
にFuntionNameを(showinfo、showwarning、showerror、askquestion、askokcancel、askyesno、askretrycancel)で指定します。
簡単で汚い方法は、OSを呼び出して「zenity」コマンドを使用することです(サブプロセスモジュールは、デフォルトですべてのpythonディストリビューション、zenityはすべての主要なLinuxにも存在します)。サンプルスクリプト、それは私の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)
より複雑なダイアログについては、zenity --helpを参照してください
これは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.