●
以前つくったGCCSは、けっこうがんばったものの二点ほど気に入らない部分があった。ひとつがTabキーで移動するエントリーの順番がよくないことで、もうひとつがエントリーに数値を打ち込んだときリアルタイムで計算して数値を更新してくれないことだ。Pythonを3.4にしたのを契機に、このツールを3ヴァージョンにするのと同時に上記二点の改造を試みた。
今回は数値の自動更新もばっちり。以下に今回の咬まれポイントの中で大切そうなものを書く。
●
1. Pythonが3になったことによる変更点。
- Tkinter ではなく tkinter という名称になった。
- 外部ファイルを開く際、 codecs モジュールを使わなくてよくなった。open() だけでよい。
- 除算記号 / で小数点以下まで算出してくれるようになったので、整数がほしいなら // を使う。
2. try-except 構文とかいう神。
数値の自動更新を行う際に問題となったのが、エントリを空欄にするとツールがエラーを吐いて固まることだった。そこで最初こころみたのが、エントリ内に数値がないときは計算の関数をパスせよ、という isdigit()
関数での数値チェック。けれどこれはうまくゆかなかった。エントリ内の情報はただの文字列や数値ではなく、 tkinter.StringVar()
や IntVar()
だったので isdigit()
には「わけわかんねーもん扱わせんなボケ」と叱られる始末である。そこで見つけたのが try-except 構文。
# try except else finally
try:
まずこの中身を実行する
except:
# try 内でエラーが出るとこの部分が実行される
else:
# try 内でエラーが出ないとこの部分が実行される
finally:
# エラーが出ようが出まいが最後にこの部分が実行される
これを使えば数値チェックだのなんだの、まるで問題にならない。ただ以下のようにすればよい。
def foo():
try:
# 数値計算と結果反映
except:
pass
self.after(500, foo)
というわけでGCCS2の中身はこんな感じになっている。エラーを無視できるというのはほんとうに革新的だった。いやまあ公式ドキュメント読めば普通に書いてあったことなんだけどね!
pandora jewelry on 2018年5月3日11:33
http://www.katespadepurses.us.com/ kate spade new york
http://www.airmax90shoes.us.com/ nike shoes
http://www.pandorajewelryrings.us.com/ pandora necklace
http://www.nikeairvapormaxflyknit.us.com/ nike air max 90
http://www.kd10-shoes.us.com/ nike kd 8
http://www.adidasnmdrunnerr1.us.com/ adidas boost
http://www.longchampbag.us.com/ longchamp le pliage
http://www.pumafentyrihannashoes.us.com/ puma rihanna
http://www.fitflops-sale.us.com/ fitflop sale
http://www.salomonspeedcross3.us.com/ salomon shoes
http://www.adidasyeezy-350.us.com/ adidas originals nmd
http://www.curry4-shoes.us.com/ curry 4 shoes
http://www.jordans11shoes.us.com/ jordan 10
http://www.kyrie-4.us.com/ kyrie 1
http://www.nikeairmax-90.us.com/ air max tn
http://www.fitflopsshoes.us.com/ fitflop sale
http://www.pandorajewelryscharms.us.com/ pandora jewelry
http://www.jordan11spacejams.us.com/ new jordans
http://www.lebron15-shoes.us.com/ lebron
http://www.pandora-jewelrysale.us.com/ pandora jewelry
http://www.adidas-ultraboost.us.com/ adidas ultra boost
http://www.yeezyboost350shoes.us.com/ yeezy boost 350
http://www.hermesbirkin-handbags.us.com/ hermes birkin bag
http://www.birkenstocksandalssale.us.com/ birkenstock
http://www.louboutinredbottoms.us.com/ red bottoms for men
ドリフトliuyuzhen