easygui API
Pythonから使えるGUIモジュールeasyguiを自分で使うための翻訳です。
インストールについてはこちら。
試しにこんなコードを動かすと、
from easygui import * msgbox("こんにちは")
こう出る。
さすが、Python3 Unicodeサポート。日本語ちゃんと出るわ。
ynbox
easygui.ynbox(msg=’Shall I continue?’, title=’ ‘, choices=(‘[<F1>]Yes’, ‘[<F2>]No’), image=None, default_choice='[<F1>]Yes’, cancel_choice='[<F2>]No’)
YesかNoの選択をつけたメッセージボックス
戻り値は以下のようにして取得できる。
if the first choice ("Yes") is chosen, or if the dialog is cancelled: return True else: return False
メッセージ(msg)の引数をとらずに、一般的なユーザーが続行するかの確認をする場合は以下のようにする。
if ynbox(): pass # continue else: sys.exit(0) # exit the program
パラメーターの解説
- msg(文字列) – 表示されるメッセージ
- title(文字列)- ウィンドウのタイトル
- choices(リスト) – 選択をいれたリストかタプル
- image(文字列) – 表示したいイメージのファイル名
- default_choice(文字列) – GUIが表示された時、ハイライトしておきたい選択
- cancel_choice(文字列) – ユーザーがクローズするためにウィンドウの’X’を押した場合、どのボタンがおされたことにするか
戻り値
もし’Yes’がおされたかダイアログがキャンセルされたらTrue、’No’ならFalse
ccbox
easygui.ccbox(msg=’Shall I continue?’, title=’ ‘, choices=(‘C[o]ntinue’, ‘C[a]ncel’), image=None, default_choice=’Continue’, cancel_choice=’Cancel’)
続けるか、キャンセルするかの選択を示すメッセージボックスを表示する。
戻り値は次のようにして得る。
if the first choice ("Continue") is chosen, or if the dialog is cancelled: return True else: return False
メッセージの引数をとらずに呼び出すと、ユーザーに続けたいかを聞く一般的な確認メッセージがでる。それでいい場合、このように使う。
if ccbox(): pass # continue else: sys.exit(0) # exit the program
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choices(リスト) – 選択のために表示するリストかタプル
- image(文字列) – 表示したいイメージのファイル名
- default_choice(文字列) – GUIが表示された時にデフォルトでハイライトしておきたい選択値
- cancel_choice(文字列) – ユーザーが’X’をクローズするために押した時、どのボタンが押されたことにするか。
戻り値
’Continueかダイアログがキャンセルされた’ならTrue,CancelならFalse
boolbox
easygui.boolbox(msg=’Shall I continue?’, title=’ ‘, choices=(‘[Y]es’, ‘[N]o’), image=None, default_choice=’Yes’, cancel_choice=’No’)
YesかNoか表示する。
戻り値を得るためには次のようにする
if the first choice is chosen, or if the dialog is cancelled: returns True else: returns False
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choices(リスト) – 選択のために表示するリストかタプル
- image(文字列) – 表示したいイメージのファイル名
- default_choice(文字列) – GUIが表示された時にデフォルトでハイライトしておきたい選択値
- cancel_choice(文字列) – ユーザーが’X’をクローズするために押した時、どのボタンが押されたことにするか。
戻り値
’Continueかダイアログがキャンセルされた’ならTrue,CancelならFalse
indexbox
easygui.indexbox(msg=’Shall I continue?’, title=’ ‘, choices=(‘Yes’, ‘No’), image=None, default_choice=’Yes’, cancel_choice=’No’)
指定した選択を選ばせるボタンのボックス
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choices(リスト) – 選択のために表示するリストかタプル
- image(文字列) – 表示したいイメージのファイル名
- default_choice(文字列) – GUIが表示された時にデフォルトでハイライトしておきたい選択値
- cancel_choice(文字列) – ユーザーが’X’をクローズするために押した時、どのボタンが押されたことにするか。
戻り値
選んだ選択のリストのオフセット値
msgbox
easygui.msgbox(msg='(Your message goes here)’, title=’ ‘, ok_button=’OK’, image=None, root=None)
メッセージボックス
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- ok_button(文字列) – ボタンのテキスト
- image(文字列) – 表示したいイメージのファイル名
- root(tkウィジェット) – tkウィジェットのトップレベル
戻り値
OK_buttonのテキスト
buttonbox
easygui.buttonbox(msg=”, title=’ ‘, choices=(‘Button[1]’, ‘Button[2]’, ‘Button[3]’), image=None, root=None, default_choice=None, cancel_choice=None)
メッセージとボタンのリストを表示。ボタンは選択リストで定義したメンバー。
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choices(リスト) – 選択のために表示するリストかタプル
- image(文字列) – 表示したいイメージのファイル名
- default_choice(文字列) – GUIが表示された時にデフォルトでハイライトしておきたい選択値
- cancel_choice(文字列) – ユーザーが’X’をクローズするために押した時、どのボタンが押されたことにするか。
戻り値
選んだボタンのテキスト
integerbox
easygui.integerbox(msg=”, title=’ ‘, default=”, lowerbound=0, upperbound=99, image=None, root=None)
ユーザーが整数を入れられるボックスを表示する。
さらに引数には、メッセージとタイトルと数値の省略値、下限、上限を設定できる。
戻り値は(テキストではなく)整数である。
表示できない場合はエラーメッセージが示され、integerboxが再度表示される。
ユーザーがキャンセルした場合は、Noneが返される。
パラメーターの解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- default(整数) – 戻されるデフォルトの値
- image(文字列) – 表示したいイメージのファイル名
- lowerbound(整数) – 下限値
- upperbound(整数) – 上限値
- root(tkウィジェット) – Tkウィジェットのトップレベル
戻り値
ユーザーが入力した整数
multenterbox
easygui.multenterbox(msg=’Fill in values for the fields.’, title=’ ‘, fields=(), values=())
複数のデータ入力のできるスクリーンの表示をする。
名前より少ない値であると、値のリストが空の文字列として挿入される。
名前より多い値であると、名前の数まで切り落とされる。
戻り値はフィールドの値のリストか、ユーザーがキャンセルした場合はNone。
使い方の例
msg = "Enter your personal information" title = "Credit Card Application" fieldNames = ["Name","Street Address","City","State","ZipCode"] fieldValues = [] # we start with blanks for the values fieldValues = multenterbox(msg,title, fieldNames) # make sure that none of the fields was left blank while 1: if fieldValues is None: break errmsg = "" for i in range(len(fieldNames)): if fieldValues[i].strip() == "": errmsg += ('"%s" is a required field.\n\n' % fieldNames[i]) if errmsg == "": break # no problems found fieldValues = multenterbox(errmsg, title, fieldNames, fieldValues) writeln("Reply was: %s" % str(fieldValues))
パラメーター解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- fields(リスト) – フィールド名のリスト
- values(リスト) – フィールド値のリスト
戻り値
文字列
enterbox
easygui.enterbox(msg=’Enter something.’, title=’ ‘, default=”, strip=True, image=None, root=None)
ユーザーがテキストを入力するためのボックスを表示する。
オプションで、デフォルトのテキストを表示できる。
例:
reply = enterbox(....) if reply: ... else: ...
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- default(文字列) – 省略値のテキスト
- strip(ブール値) – もしTrueなら戻り値から空白は取り去られる
戻り値
文字列。ユーザーがCancelしたらNone
exceptionbox
easygui.exceptionbox(msg=None, title=None)
例外などを表示するためのボックス。
呼び出す時にウィンドウのタイトルを指定でき、エラー情報をテキスト表示できる。
引数にexceptionオブジェクトを取ることはできない。直近のexceptionオブジェクトが自動的に参照される。
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
戻り値
None
choicebox
easygui.choicebox(msg=’Pick something.’, title=’ ‘, choices=())
選択のリストを表示し、選択結果を戻す。
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choices(リスト) – 表示する選択のリストかタプル
戻り値
選んだ選択値か、ユーザーがCancelしたらNone
codebox
easygui.codebox(msg=”, title=’ ‘, text=”)
モノスペースフォントで行が折りたたまれないで表示される。スペースなどで形式化されたテキストやコードを表示するために最適。
表示するテキストは文字列、リストもしくはタプル
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- text(文字列) – ボックスに表示する内容
戻り値
なし
*注意:項目数が2個以下だと”Add more choices”という項目がでる。これは仕様。
textbox
easygui.textbox(msg=”, title=’ ‘, text=”, codebox=0)
プロポーショナルフォントで適当に折りたたまれて表示する。一般的なテキスト表示に向いている。
表示するテキストは文字列、リストもしくはタプル
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- text(文字列) – ボックスに表示する内容
- codebox(文字列) – もし1ならばcodeboxとしてふるまう
戻り値
なし
diropenbox
ディレクトリ名を得るためのダイアログ。msg引数を指定しても無視される。
戻り値はディレクトリ名かユーザーがキャンセルしたらNone
もし、defaultにディレクトリ名を指定し、そのディレクトリが存在するならば、そのディレクトリを表示する
パラメータ解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- default(文字列) – ダイアログがオープンした時、最初に表示するディレクトリ
戻り値
ユーザーによって指定されたpath
fileopenbox
easygui.fileopenbox(msg=None, title=None, default=’*’, filetypes=None, multiple=False)
ファイル名を得るためのダイアログ
デフォルトの意味:
ひとつかそれ以上のワイルドカードを含むファイルパスを指定可能です。もしマッチしなければ、デフォルトは*とみなされ、現在のディレクトリ中のすべてのファイルがリストされます。
Windowsでのサンプル
...default="c:/myjunk/*.py"
この場合、c:myjunkaのディレクトリ下のtestで始まるPythonファイルがリストされます。
fileopenboxは自動的にパスのセパレータをWindowsに適したセパレータに変更します。
filetypeの意味:
以下のどちらかの項目のリストを設定できます。
- “*.txt”のようなファイルマスクの文字列を指定する
- 最後がファイル属性を示すような文字列のリスト(たとえば、*.txtはテキストファイル、*.pyはPythonファイル)とファイルの属性のリスト
例:
filetypes = ["*.css", ["*.htm", "*.html", "HTML files"] ]
ファイルタイプリストに(“All files”,”*”)が自動的に付加されます。
“default”にファイルの属性のないファイルのサフィックスを含んだファイルマスクを指定すると、例えばdefault=”*abc.py”とだけ指定し属性を指定しない、”*.py”が自動的に付加されます。
パラメータ解説
- msg(文字列)- 表示されるメッセージ
- title(文字列) – ウィンドウのタイトル
- default(文字列) – ワイルドカード入りのファイルマスク
- filetypes(object) – ユーザーが選ぶことのできるファイルマスク(例:*.txt)
- multiple(ブール値) – もしTrueなら、一つ以上のファイルの選択が可能。
戻り値
ファイルの名前か、もしユーザーがキャンセルするとNone
filesavebox
easygui.filesavebox(msg=None, title=None, default=”, filetypes=None)
保管するファイル名を得るためのダイアログ。戻り値はファイル名もしくはキャンセルされたらNone
Defaultはワイルドカードをふくんだファイルマスクか空である。
filetypeはfileopenboxと同様にfiletypeをいれる。
パラメータ解説
- msg(文字列)- 表示されるメッセージ
- title(文字列) – ウィンドウのタイトル
- default(文字列) – ワイルドカード入りのファイルマスク
- filetypes(object) – ユーザーが選ぶことのできるファイルマスク(例:*.txt)
戻り値
ファイルの名前か、もしユーザーがキャンセルするとNone
passwordbox
easygui.passwordbox(msg=’Enter your password.’, title=’ ‘, default=”, image=None, root=None)
パスワード入力を促すダイアログ。テキストは*でマスクされ、見えない。
パラメータ解説
- msg(文字列)- 表示されるメッセージ
- title(文字列) – ウィンドウのタイトル
- default(文字列) – ユーザーが変更しない時の値を返すための値
戻り値
ユーザーが入力した値。ユーザーがキャンセルしたらNone
multpasswordbox
easygui.multpasswordbox(msg=’Fill in values for the fields.’, title=’ ‘, fields=(), values=())
multenterboxと同じインターフェースだが、multpasswordboxは最後のボックスをパスワードだとみなし*でマスクする。
例:
この例ではmultpasswordboxからどのように値の正当性がチェックされ戻されるかを示す。
msg = "Enter logon information" title = "Demo of multpasswordbox" fieldNames = ["Server ID", "User ID", "Password"] fieldValues = [] # we start with blanks for the values fieldValues = multpasswordbox(msg,title, fieldNames) # make sure that none of the fields was left blank while 1: if fieldValues is None: break errmsg = "" for i in range(len(fieldNames)): if fieldValues[i].strip() == "": errmsg = errmsg + ('"%s" is a required field.\n\n' % fieldNames[i]) if errmsg == "": break # no problems found fieldValues = multpasswordbox(errmsg, title, fieldNames, fieldValues) writeln("Reply was: %s" % str(fieldValues))
パラメーター解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- fields(リスト) – フィールド名のリスト
- values(リスト) – フィールド値のリスト
戻り値
文字列
multchoicebox
easygui.multchoicebox(msg=’Pick as many items as you like.’, title=’ ‘, choices=(), **kwargs)
選択リストを表示し、複数の項目を選択させ、項目リストを戻す。ユーザーがなにも選ばなかったら空のリストが戻る。キャンセルされたらNoneが戻る。
パラメーター解説
- msg(文字列) – 表示するメッセージ
- title(文字列) – ウィンドウのタイトル
- choice(リスト) – 表示する選択のリストかタプル
戻り値
選択値のリストかキャンセルされたらNone
abouteasygui
easygui.abouteasygui()
easyguiのリビジョンを表示する。
egdemo
easygui.egdemo()
EasyGuiのデモを表示する。
EgStore
class easygui.EgStore(filename)
永続的なストレージをサポートするクラス。
EasyGuiアプリケーションのユーザー設定を保管したり、取り出したりする永続的なストレージをサポートする。
例1:EgStoreのサブクラスとして名前をつけた設定のクラス定義をする
class Settings(EgStore): def __init__(self, filename): # filename is required #------------------------------------------------- # Specify default/initial values for variables that # this particular application wants to remember. #------------------------------------------------- self.userId = "" self.targetServer = "" #------------------------------------------------- # For subclasses of EgStore, these must be # the last two statements in __init__ #------------------------------------------------- self.filename = filename # this is required self.restore() # restore values from the storage file if possible
例2: 設定を作り、永続的な設定オブジェクトを作る
settingsFile = "myApp_settings.txt" settings = Settings(settingsFile) user = "obama_barak" server = "whitehouse1" settings.userId = user settings.targetServer = server settings.store() # persist the settings # run code that gets a new value for userId, and persist the settings user = "biden_joe" settings.userId = user settings.store()
例3:設定クラスを消し、属性を変更して再び保管する
settings = Settings(settingsFile) settings.userId = "vanrossum_g" settings.store()
kill
kill()自分の永続的ファイルがあれば、削除する(例:pickleファイル)
restore
restore()
pickleファイルから復元された属性をセットする。
Egstoreオブジェクトのthe__dic__属性を操作するためのもの。
もし、pickledオブジェクトはEgStoreで初期化されていなかったら、EgStoreオブジェクトは適当な属性と置き換える。
pickledオブジェクトにない属性がEgstoreオブジェクトで職下されたら、EgStoreオブジェクトの属性として初期化後も残される。
EgStoreオブジェクトに初期化されない属性がpickledオブジェクトにあれば、それは無視される。
要約
recover()を実行した後のEgStoreオブジェクトはすべてをもち初期化されている。可能な限りのものはpickledオブジェクトから復元される。
store
store()
EgStoreオブジェクトの属性をpickledファイルに保管する。もし、pickleファイルがなかったら、操作は失敗する。