リンク

2016年6月29日水曜日

pythonでGUIツールを作る ~選択ダイアログ(シングル)~

wxPythonでは数々の即席ダイアログが初めから用意されています。

今回はそんな中から単一の項目を選択する場合に使用する「シングルチョイスダイアログ」をご紹介します。
# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント
def click(event):
    # シングルチョイスダイアログ
    selections = [u'りんご', u'みかん', u'いちご', u'バナナ', u'スイカ', u'メロン']
    dlg = wx.SingleChoiceDialog(None, u'果物を入力してください', u'タイトル部分', selections)
    dlg.ShowModal()
    dlg.Destroy()

    # 選択項目の文字列を取得
    input_text = dlg.GetStringSelection()

    # 文字列をステータスバーに表示する
    frame.SetStatusText(u"選択された果物は%sです" % input_text)

app = wx.App()

frame = wx.Frame(None, -1, u'タイトル', size=(200, 200))
frame.CreateStatusBar()
p = wx.Panel(frame, -1)

button = wx.Button(p, -1, u'ボタン')
button.Bind(wx.EVT_BUTTON, click)

frame.Show()
app.MainLoop()

<結果>


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


~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上記のスクリプトを実行すると、ボタンだけが配置されたシンプルなフレームが表示されます。

そのボタンをクリックすると、今回ご紹介するシングルチョイスダイアログが表示されます。

selections = [u'りんご', u'みかん', u'いちご', u'バナナ', u'スイカ', u'メロン']
シングルチョイスダイアログでは事前にリストを準備しておく必要があります。
このリストが選択肢となります。

dlg = wx.SingleChoiceDialog(None, u'果物を入力してください', u'タイトル部分', selections)
この記述でシングルチョイスダイアログをインスタンス化しています。
引数は(親ウィジット、メッセージ、タイトル、選択肢(リスト))となります。

続いて、シングルチョイスダイアログで使用する関数をご紹介します。
# 選択された項目の文字列を返す。(キャンセルの場合は空を返す)
dlg.GetStringSelection()

# 選択された項目のインデックス値を返す。(キャンセルの場合はデフォルトのインデックス値を返す)
dlg.GetSelection()

# デフォルトのインデックス値を指定する。
dlg.SetSelection(2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

シングルチョイスダイアログは非常に便利なダイアログです、
通常はメインとは別のフレームを作り、その中にリストボックス・ラベル・OKボタン・キャンセルボタンを設置し・・・などどしなければならない作業が不要となり、わずか数行で実現できます。

複数の選択肢からひとつだけ選択してもらうという状況はよく発生しますので、ぜひ覚えておきましょう!

=======================================================================
環 境:Python 2.7.9 / Windows7
=======================================================================
この記事が参考になりましたら、シェア・フォローお願いします
=======================================================================

0 件のコメント:

コメントを投稿