wxPythonでメッセージボックスを表示させる

2021年7月18日日曜日

Python wxPython

t f B! P L

今回の内容

今回はwxPythonでメッセージボックスを表示させる方法を紹介します。
一行で表示させることもできますし、MessageDialogを使うこともできます。
ではさっそく紹介していきましょう!

一行で表示させる

正確に言えばwx.Appやimport wxをしなきゃいけないので一行ではありませんが、一行を追加するだけで表示させる
という方法を紹介します。以下のコードを追加するだけです。
注意:import wx
app = wx.App(0)
を省略しています。

wx.MessageBox("メッセージボックス","タイトル",wx.ICON_INFORMATION)

wxPythonでメッセージボックスを表示させる
↑成功例

アイコンを指定する


 

wx.ICON_INFORMATION情報アイコン
wx.ICON_ERRORエラーアイコン
wx.ICON_WARNING警告アイコン
wx.ICON_QUESTION ※質問アイコン

※質問アイコンはWindows Vista以降、表示されなくなりました。
これを、MessageBox関数の第三引数に入れてあげます。例えば、警告アイコンの場合は以下のコードになります。
wx.MessageBox("警告メッセージで~す","たいとる",wx.ICON_WARNING)
成功例:
wxPythonでメッセージボックスを表示させる

ボタンを設定する

MessageBox関数でもボタンを指定することができます。

 

wx.YES_NOはい いいえ
wx.CANCELキャンセル
wx.HELPヘルプボタン

これを第三引数に追加してあげます。
例をコードにあげます。
wx.MessageBox("メッセージボックスです。","タイトルです",wx.ICON_ERROR | wx.YES_NO) #[はい][いいえ]
wx.MessageBox("メッセージボックスです!","たいとるです",wx.ICON_WARNING | wx.CANCEL) #[OK][キャンセル]
wx.MessageBox("メッセージボックスです?","タイトル!",wx.ICON_ERROR | wx.YES_NO | wx.CANCEL) #[はい][いいえ][キャンセル]
wx.MessageBox("ヘルプボタンありますがクリックすると閉じちゃいます。","た",wx.YES_NO | wx.HELP) #[はい][いいえ][ヘルプ]
こんな感じになります。

wxPythonでメッセージボックスを表示させる
ヘルプボタンをつけるとこんな感じになります。
ヘルプボタンをおすとそのまま閉じてしまいますので、本当のヘルプボタンとしての機能はしていません。


戻り値について


表にするとこんな感じ

 

wx.YES[はい]
wx.NO[いいえ]
wx.CANCEL[キャンセル]
wx.HELP[ヘルプ]
wx.OK[OK]

こんな感じになります。サンプルコード↓
user = wx.MessageBox("1+1=2?","質問です",wx.ICON_INFORMATION | wx.YES_NO)
if user == wx.YES:
    wx.MessageBox("正解です!","情報",wx.ICON_INFORMATION)
elif user == wx.NO:
    wx.MessageBox("違います!","情報",wx.ICON_ERROR)

wx.MessageDialogを使う

MessageBox関数のように一行だけ とはいきませんが、これはMessageBox関数より高機能でカスタマイズ性の高いものです。
たとえば、[はい][いいえ]とかって物足りないですよね?
そんなときに使えるのがMessageDialogです。自由にMessageDialogのボタンのテキストを変更することができます。
既にその記事を投稿しておりますので、みてください。↓
wxPython の MessageDialog でボタンのテキストを変更する方法
さて、まずMessageDialogの基本的な関数はこんな感じになります。
※もう一度いいますが、import wxとapp = wx.App(0)は省略いております。
()これからのサンプルコードでも同様
msgdlg = wx.MessageDialog(None,"メッセージ","タイトル",wx.ICON_INFORMATION)
msgdlg.ShowModal()
表示にはShowModalを使います。
MessageDialogの引数については第一引数は親のフレームを指定しますが、それ以降はMessageBox関数の引数と同じです。
さらに、戻り値については、ShowModal()のところで返ってきます。戻り値についてはMessageBox関数と微妙に違いますので確認してください。

 

wx.ID_YES[はい]
wx.ID_NO[いいえ]
wx.ID_CANCEL[キャンセル]
wx.ID_HELP[ヘルプ]
wx.ID_OK[OK]
それによって、以下のようにコードをかくことができます。
msgdlg = wx.MessageDialog(None,"20歳以上ですか?","確認",wx.ICON_WARNING | wx.YES_NO)
user = msgdlg.ShowModal()
if user == wx.ID_YES:
    wx.MessageBox("OKです。","情報",wx.ICON_INFORMATION) #一行でできるようにMessageBox関数を使用
else:
    wx.MessageBox("だめです。","情報",wx.ICON_ERROR) #これも



以上。終了。
わからないことがあればコメントで


人気記事を見逃すな!
wxPythonで簡単なメモ帳を開発する
人気No.1‼
wxPythonでシンプルなメモ帳を作成する

動作環境:
Windows 10
64bit
Python3.9.1
wxPython4.1.1a1

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ