リンク

2016年4月26日火曜日

pythonでGUIツールを作る ~メッセージボックス~

pythonでメッセージボックスを表示させる方法はいくつか存在しますが、今回はwxPythonを用いた、非常にシンプルな方法をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

# メッセージボックスを表示
wx.MessageBox(u'メッセージ', u'タイトル')

<結果>

続いて詳細を見ていきます。


~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# メッセージボックスを表示
wx.MessageBox(u'メッセージ', u'タイトル')
メッセージボックスを表示させるには、wx.MessageBoxクラスを使用します。
wx.MessageBoxクラス以外にwx.MessageDialogクラスも近い機能があります。wx.MessageDialogクラスについては別の記事でご紹介します。

サンプルスクリプトでは必要最小限にメッセージとタイトルのみを指定しましたが、他にもボタンの種類やアイコンの種類を指定することができます。

# OKボタンを指定(デフォルト)
wx.MessageBox(u'メッセージ', u'タイトル', wx.OK)

# OKボタンとキャンセルボタンを指定
wx.MessageBox(u'メッセージ', u'タイトル', wx.CANCEL)

# 「はい」ボタンと「いいえ」ボタンを指定
wx.MessageBox(u'メッセージ', u'タイトル', wx.YES_NO)

# 「はい」ボタンと「いいえ」ボタンを指定しつつ、「いいえ」ボタンを選択状態にする
wx.MessageBox(u'メッセージ', u'タイトル', wx.YES_NO | wx.NO_DEFAULT)

# infoアイコンを指定(デフォルト)
wx.MessageBox(u'メッセージ', u'タイトル', wx.ICON_INFORMATION>)

# アラートアイコンを指定
wx.MessageBox(u'メッセージ', u'タイトル', wx.ICON_EXCLAMATION)

# エラーアイコンを指定
wx.MessageBox(u'メッセージ', u'タイトル', wx.ICON_ERROR)

# 「はい・いいえ」ボタンにしつつ、エラーアイコンを指定
wx.MessageBox(u'メッセージ', u'タイトル', wx.YES_NO | wx.ICON_ERROR)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

メッセージボックスは例えば次のような時によく使用します。
  ・処理が終わったとき
  ・処理を開始するとき
  ・エラーが発生したとき

GUIツールを作成するには無くてはならない存在です。
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります! \(^o^)/
==================================================================

5 件のコメント:

  1. ご多忙のところ恐縮です。
    Python勉強中で、メッセージボックスを表示と思い本ページを参考にさせて頂いているのですが、問い合わせ時の疑問符アイコンが表示されません。wx.ICON_QUESTION を記述してもダメです。ダイアログ側も同様です。何かご存じでしたらご教示ください。環境は、下記です。
    python 3.6.6
    wxpython 4.0.3
    windows 10

    以上、よろしくお願い致します。

    返信削除
    返信
    1. だい様
      コメントありがとうございます。
      また、返答が遅くなり申し訳ございません。

      お問い合わせの件ですが、当方でも同じ現象がありました。
      wx.HANDやwx.INFORMATIONは問題ありませんが、wx.QUESTIONはエラーはないものの、画像が表示されませんでした。
      現状、原因は不明です。
      こちらでも調査してみます。

      お力になれず、申し訳ありませんm(__)m

      削除
    2. TAKE様
      ご返答ありがとうございます。
      再現できたということでよかったです。
      tkinterで対応できるのですが、こちらはボタンフォーカスの制御ができません。
      (例:「はい」、「いいえ」ボタンがあり、「いいえ」ボタンにフォーカスがある状態で表示にしたい)
      wxPythonを使用したいですが、フォーカス制御より疑問符アイコンが表示されなない方がいけてないかと。
      ご多忙のところ恐縮ですが、進展がありましたらご教示ください。
      ありがとうございました。

      削除
    3. だい様
      匿名になっているかと思いますが管理人(TAKE)です。

      上記の件ですが、公式リファレンスを参照したところ、Windows Vista以降ではwx.ICON_QUESTIONはサポートされていないようです。
      ですので、残念ですが疑問符アイコンの表示はできないということになります。

      参照:https://wxpython.org/Phoenix/docs/html/wx.MessageDialog.html

      以上、ご報告まで。

      削除
    4. ご返答遅くなって申し訳ありません。
      すぐ調べて頂きありがとうございます。
      公式リファレンス拝見しました。
      なんか腑に落ちませんがしかたありませんね。
      ありがとうごいました。

      削除