リンク

2016年6月23日木曜日

pythonでGUIツールを作る ~テキスト入力ダイアログ~

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

今回はそんな中から任意の文字列を入力できる「テキスト入力ダイアログ」をご紹介します。
# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント
def click(event):
    # テキスト入力ダイアログ
    dlg = wx.TextEntryDialog(None, u'テキストを入力してください', u'タイトル部分')
    dlg.ShowModal()
    dlg.Destroy()

    # 入力値を取得
    input_text = dlg.GetValue()

    # 入力値をステータスバーに表示する
    frame.SetStatusText(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()

<結果>

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


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

そのボタンをクリックすると、今回ご紹介するテキスト入力ダイアログが表示されます。

dlg = wx.TextEntryDialog(None, u'テキストを入力してください', u'タイトル部分')
この記述でテキスト入力ダイアログをインスタンス化しています。
その際の引数は(親ウィジット、ダイアログ内の文字列、タイトル文字列)です。

また、画像のようにダイアログ起動の時点で任意のテキストを入力しておきたい場合は、引数を追加して(親ウィジット、ダイアログ内の文字列、タイトル文字列, デフォルト文字列)とするか、
dlg.SetValue(u'デフォルト文字列')
というようにSetValue()を行います。

# 入力値を取得
input_text = dlg.GetValue()
GetValue()で、入力された文字列を取得することができます。
今回の例では、取得した文字列をフレームのステータスバーに出力しています。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

テキスト入力ダイアログは文字列だけでなく数値でも大丈夫です。
これを使って、ユーザーになんでも入力してもらいましょう!

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

0 件のコメント:

コメントを投稿