リンク

2016年4月26日火曜日

pythonでGUIツールを作る ~メッセージダイアログ~

今回はpythonでメッセージダイアログを表示させる方法をご紹介します。

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

import wx

app = wx.App()

# メッセージダイアログを作成
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル')

# メッセージダイアログを表示
dialog.ShowModal()

<結果>
続いて詳細を見ていきます。


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

# メッセージダイアログを作成
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル')
ここではwx.MessageDialogクラスをインスタンス化し、表示させる前準備を行っています。 引数は(親ウィジット、ダイアログ内に表示する文字列、タイトル文字列)です。
さらに、スタイルを指定することで、ボタンの種類やアイコンの種類を自由に変更することができます。

# OKボタンのみ
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.OK)

# OKボタンとキャンセルボタン(デフォルト設定)
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.OK | wx.CANCEL)

# 「はい・いいえ」ボタン
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.YES_NO)

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

# infoアイコンを指定(デフォルト設定)
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.ICON_INFORMATION)

# アラートアイコンを指定
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.ICON_EXCLAMATION)
# エラーアイコンを指定
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル', style=wx.ICON_ERROR)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 上記スクリプトではメッセージダイアログを表示させるだけでしたが、返り値を取得することで、その後の処理を分岐させるなども可能です。
返り値を取得するには次のように記述します。
 # メッセージダイアログを表示
 result = dialog.ShowModal()
※「result」は任意の変数

例えば、「メッセージダイアログを表示し、OKボタンが押された場合のみ処理を進める」としたい場合は次のように記述します。

# -*- coding: utf-8 -*-
import wx

app = wx.App()

dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル')
result = dialog.ShowModal()

if result == wx.ID_OK:
    print u'OKが押されました!'
wxPythonには、今回ご紹介したwx.MessageDialogクラスと類似のwx.MessageBoxクラスがあります。
wx.MessageBoxクラスは、インスタンス化と表示が同時に行われているようで、別途表示させる命令文(今回でいうとShowModal()の部分)は必要ありませんでした。

 今回のwx.MessageDialogクラスは表示させる命令文が必要なので面倒だと感じるかもしれませんが、裏を返せばこれは「表示させるタイミングを任意に調整できる」ことになります。
機能的にはそれほど差はありませんので、お好きな方を使用すればいいと思います。

=======================================================================
 環 境:Python 2.7.9 / Windows7 =======================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります!
 =======================================================================

0 件のコメント:

コメントを投稿