1. ホーム
  2. python

[解決済み] Pythonで簡単なメッセージボックスを作るには?

2022-04-27 09:38:47

質問

と同じ効果を求めています。 alert() をJavaScriptで作成します。

今日の午後、Twisted.webを使って簡単なWebベースのインタプリタを書きました。基本的には、フォームを通してPythonコードのブロックを送信し、クライアントが来てそれを取得して実行します。私は、毎回定型的なwxPythonやTkInterのコードを書き直すことなく、簡単なポップアップメッセージを作れるようにしたいのです(コードはフォームを通して送信され、その後消えてしまうので)。

tkMessageBoxを試してみました。

import tkMessageBox
tkMessageBox.showinfo(title="Greetings", message="Hello World!")

が、これではバックグラウンドで別のウィンドウが開き、tkのアイコンが表示されます。これでは困ります。簡単なwxPythonのコードを探していたのですが、いつもクラスの設定やアプリのループに入ることなどが必要でした。Pythonでメッセージボックスを作る簡単でキャッチフリーの方法はないのでしょうか?

どのように解決するのですか?

このようにインポートして1行のコードを使用することができます。

import ctypes  # An included library with Python install.   
ctypes.windll.user32.MessageBoxW(0, "Your text", "Your title", 1)

あるいは、このような関数(Mbox)を定義します。

import ctypes  # An included library with Python install.
def Mbox(title, text, style):
    return ctypes.windll.user32.MessageBoxW(0, text, title, style)
Mbox('Your title', 'Your text', 1)

なお、スタイルは以下の通りです。

##  Styles:
##  0 : OK
##  1 : OK | Cancel
##  2 : Abort | Retry | Ignore
##  3 : Yes | No | Cancel
##  4 : Yes | No
##  5 : Retry | Cancel 
##  6 : Cancel | Try Again | Continue

楽しんでください。

注:編集で MessageBoxW の代わりに MessageBoxA