友人が「pythonで簡単にGUI触れるのない?」って言うから、昔調べたんですけど、ブラウザにそのページのタブが残っていたので、触ってみました。
そんな友人向けに、EasyGuiというモジュールがあるそうです。
ここを参考にして、どんなものなのか見ていきたいと思います。
ちなみに、今回実践する環境は、
こんな感じです。
getconf LONG_BIT
とやってやれば、出てくるようです。
今回触れるEasyGuiは、あまりOSの差はないかと思います。
それでは、実際に動作させて行きましょう。
1.準備
まずは、準備です。EasyGuiをダウンロードします。
次に、今回の環境では Python 2.7 なので、
/Library/Python/2.7/site-packages
にダウンロードしてきた、easygui.pyをコピーするだけいいみたい。
>>> from easygui import *
と打って、何事もなく >>> と出れば問題なし。
準備完了です。
何か出た場合は、easyguiを発見できてない可能性があります。
その場合、easyguiのある所のpathを確認しましょう。
sys.pathにその場所がない場合は、追加しましょう。
2.それっぽく触る
>>> msgbox("hello python!")
と打ち込んでみましょう。
入門完了ですね!
さすがに、他にもやってみないとアレですね。
msgbox("hello python!", "easygui", ok_button="Bye!", image="./image.jpg")
今回は、指定できる引数をすべて指定しました。
一番目の引数から順に、
メッセージテキスト
タイトル
ボタンに表示するテキスト
表示する画像
となっているようです。
【悲劇】画像が表示されなかった
きっと、PILが足りませんみたいなことを言われたと思います。
sudo easy_install PIL
とするか、
ここから、ダウンロードしてインストールしましょう。
なんて、軽い気持ちでやってみたら、ダメでした。
心折れるー(´⊇`)
しかたないので、画像を無視して触ってみました。(悲しみ
msgbox("hello python!", "easygui", ok_button="Bye!")
きっと色々と変わったと思います。
3.選択肢あるやつ
切り替えは大切ですね!
早速、別のものにも触れてみましょう。
msg = u"あなたは何のプロ?" title = u"質問" choices = ["C++", "Python", "Coq", "ChacK"] choice = choicebox(msg, title, choices) print choice
【悲劇】おのれ日本語
File "test.py", line 4
SyntaxError: Non-ASCII character '\xe3' in file test.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsshell returned 1
日本語では出てくれなかったです(´д `)
ちゃんと設定とかすれば出るんでしょうが、今回はあきらめです。
4.入力させてください
いやいや、こんなことで心折れてはなりません。
入力を受け取るものを触ってみましょう。
msg="Omae Ha Nanimono Da ?" title = "Toi" fieldStrings = ["Watashi Ha","Nenrei Ha","Seibetu Ha","Syumi Ha"] fieldValues = [] fieldValues = multenterbox(msg, title, fieldStrings) for v in fieldValues: print v
もはや意地の領域で、ローマ字日本語。諦めない心 (イミフ
ソース見てお分かりの通り、multenterboxはリストにして入力されたものを返してくれるみたいです。これはすごいと思う。
あ、なんか日本語打てない。ど、どうしよう......
今回はスルー決め込みましょう。
5.(´д `)
さらっと触ってみようかな☆
という気持ちであったのですが、画像と日本語にやられてしまってさあ大変。どじょうがでてきて(ry
しかし、今回紹介したもの意外にも y/n を訊いてくれる ynbox() や、Continueするかどうか訊いてくるccbox()、普通にtextbox()なんていうものもあるそうです。
何かGUIでやってみたいことがある人は、まじめに勉強してみるといいと思います。ちょっとしたものづくりなら十分なモジュールではないでしょうか。
参考にしたサイト
sys.pathについて
PythonでImportError: No module namedに遭遇した。 - Last Modified
easyguiについて
Pythonの簡単なGUI(EasyGui) | 日々雑感、覚書
PILにまつわる調べものの後
Python Imaging Library (PIL)
http://www.logos.ic.i.u-tokyo.ac.jp/~s1s5/pukiwiki/index.php?programming%2Fpython%2FPIL
http://blog.atrac613.io/2011/08/04/mac-os-x-10-7-lion-%E3%81%AB-pil-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
http://kapi.jp/kapi_blog/246
http://www.martin-geber.com/thought/2007/08/22/problems-installing-easy_install-pil/
Python Imaging Libraryの使い方 〜The Image Module - white wheelsのメモ