目次
はじめに
自分はCUI好きなので、
あまり個人的なツールにGUIは不要だと思っていましたが、
やはりファイルを選択させたり、
様々なオプションを選択させたり、
各パラメータに値を入力させたりしたい時には、
シンプルなGUIインターフェイスがあるといいなと思っていました。
そこで今回、Pythonのデフォルトモジュールである
TkinterというGUIコンポーネントを使うことにより、
上記のような簡単なGUI処理ができるライブラリを作成したので
紹介したいと思います。
シンプルなGUIライブラリ: SimpleTkGUIKit
作成したGUIライブラリSimpleTkGUIKitは
下記のGithubリポジトリで管理されています。
インストール方法
インストール方法はpipをインストールしていれば、
下記のコマンドでインストールできます。
sudo pip install SimpleTkGUIKit
使い方
インストールした後は、
下記のコマンドでモジュールのクラスをインストールして下さい。
from SimpleTkGUIKit import SimpleTkGUIKit
GetFilePathsWithDialog
この関数は、
OSのGUIウインドウを使って、
選択したファイルのパスを取得することができます。
fileList=SimpleTkGUIKit.GetFilePathsWithDialog()
print fileList
下記のようにfileTypesを指定することで、
指定した拡張子のファイルのみを選択させることができます。
fileList=SimpleTkGUIKit.GetFilePathsWithDialog(fileTypes=[('CSV Files', '.csv')]) print fileList
GetRadioButtonSelect
これは選択オプションをリストで渡すことにより、
ラジオボタンによるオプション選択を可能にする関数です。
(selected,index)=SimpleTkGUIKit.GetRadioButtonSelect(["sample a","sample b","sample c"]) print selected
上記のようなコードを実行すると、
下記のようなラジオボタンのGUIによって、
一つのオプションを選択させることができます。
オプションを選択したあと、OKボタンを押すと
選択されたオプション名とリストのインデックスが返り値となります。
また、下記のようにGUIウインドウの名前や、
ラジオボタンのラベルを指定することもできます。
(selected,index)=SimpleTkGUIKit.GetRadioButtonSelect(["Red","Green","Blue"],title="Color Select",msg="Please select color") print selected
GetListSelect
この関数はリストGUIによってオプションを選択できる関数です。
GUIがリストになるだけで、
基本的には上記のラジオボタン関数と使い方は同じです。
print "GetListSelect" (selected,index)=SimpleTkGUIKit.GetListSelect(["sample a","sample b","sample c"]) print (selected,index)
先ほどと同様に、ウインドウの名などのオプション指定もできます。
(selected,index)=SimpleTkGUIKit.GetListSelect(["sample a","sample b","sample c"], title="Select sample", msg="Please select sample") print (selected,index)
GetCheckButtonSelect
こちらはチェックボタンによって
オプションを設定することができる関数です。
これまでのラジオボタンやリストのGUIと異なり、
複数のオプションを指選択することができます。
print "GetCheckButtonSelect" optList=SimpleTkGUIKit.GetCheckButtonSelect(["sample a","sample b","sample c"], title="Select sample", msg="Please select sample")
この関数は、引数として与えたリストに対して、
選ばれたかどうかを表す真偽値を組み合わせた辞書型を返します。
GetEntries
この関数は、任意のstring型を入力させることができるGUIツールです。
下記のコードのように指定された文字列に対して、
一行の文字列を入力させることができます。
print "GetEntries" dataList=SimpleTkGUIKit.GetEntries(["x","y","z"], title="set entris", msg="Please set entries") print dataList
文字列なので、様々なパラメータを入力させることができます。
当然、数値も入力できますが、
返り値としてはstringで返ってくるので
数値への変換はクライアント側でする必要があります。
PyPIのライブラリページ
本ライブラリのPyPiのサイトは下記のURLです。
Licence
本ライブラリのライセンスはMITライセンスとしています。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。