ITで遊ぶ

easygui API 私家製翻訳(4)

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ファイルがなかったら、操作は失敗する。

関連記事

  1. JavaScriptでグラフィック(3)

  2. DOAの落とし穴

  3. Raspberry Piに本当の乱数発生器が追加されていた

  4. アプリケーションの開発では

  5. 一人でアプリケーションを開発する時のサーバーレス

  6. 汎用プログラムPythonとeasygui(1)

  7. ハッカソンって騒ぐだけ?

  8. PostgreSQL JDBCドライバーの注意点