リンク

2016年4月22日金曜日

pythonでGUIツールを作る ~チェックボックス~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、選択系ウィジットの1つである ”チェックボックス“(CheckBox) をご紹介します。
チェックボックスは各項目の先頭に□が付いており、レ点を付けることでひとつ~複数の項目を選択します。

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

import wx

app = wx.App()

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

# チェックボックスの設置
checkbox_1 = wx.CheckBox(panel, -1, 'CheckBox_1', pos=(10,10))
checkbox_2 = wx.CheckBox(panel, -1, 'CheckBox_2', pos=(10,40))
checkbox_3 = wx.CheckBox(panel, -1, 'CheckBox_3', pos=(10,70))

frame.Show()
app.MainLoop()

<結果>

上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、wxPythonのススメ ~基礎編~をご覧ください。

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


~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# チェックボックスの設置
checkbox_1 = wx.CheckBox(panel, -1, 'CheckBox_1', pos=(10,10))
チェックボックスを作成するには、wx.CheckBoxクラスを使用します。
今回の例では引数に(親ウィジット、識別子、表示文字列、表示位置)を指定しています。

また、追加でスタイルを指定することができます。
スタイルを指定することで、通常使用する2種類の選択状態(ONかOFFか)を使用するか、3つの状態(ONかOFFか混合状態か)を使用するを設定可能です。

# 2種類の選択状態(デフォルト)
checkbox_1 = wx.CheckBox(panel, -1, 'CheckBox_1', pos=(10,10), style=wx.CHK_2STATE)
2種類の選択状態

# 3つの状態
checkbox_1 = wx.CheckBox(panel, -1, 'CheckBox_1', pos=(10,10), style=wx.CHK_3STATE)
3種類の選択状態
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ここからは、wx.CheckBoxクラスでよく使用する主な関数をご紹介します。

# 表示文字列を変更する
checkbox_1.SetLabel(u'この文字に変更')

# 無効状態(チェックできない状態)にする
checkbox_1.Disable()

# 有効状態(チェックできる状態)にする
checkbox_1.Enable()

# チェックを付けた状態(ON状態)にする
checkbox_1.SetValue(wx.CHK_CHECKED)

# チェックを外した状態(OFF状態)にする
checkbox_1.SetValue(wx.CHK_UNCHECKED)

# チェックを混合状態にする
checkbox_1.SetValue(wx.CHK_UNDETERMINED)

# チェックの有無を取得する
checkbox_1.GetValue()

# イベントを設定する(チェック状態が変化したら発生する)
checkbox_1.Bind(wx.EVT_CHECKBOX,>check_changed)
## check_changedは別途用意する関数を表す。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

今回はチェックボックスをご紹介しました。
ぜひご参考ください。

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

0 件のコメント:

コメントを投稿