VenstarCEのインストール
PythonCEのお勉強も、単純なことのくり返しだと飽きてくるので、GUIプログラムに挑戦。
現状、PythonCEでGUIを作るには、PythonCE用に移植されているTKinter、wxPython、Vensterの三つを利用できるようだ。
TKinterはPythonGUI作るモジュールとしては一番ポピュラーなものらしい。ならばと、まずはこちらを試したが、adesだとウィンドウがQVGAサイズで馬鹿でかく表示され、いまいち使いづらい。また、動作させるのに必要なdllをいくつか入れたら、Today表示とW-ZERO3メールのフォントが大きく表示されるという副作用が起きてしまった。
wxPythonのCE移植されたwxPyCE、こちらはPython2.5+WM5ではうまく動作すらしない。(import時にエラーが出てしまう。PyCryptoなるモノをインストールすれば動くらしいが...)
だったらと、VensterCEを試したところ、こちらは付属のDEMOがちゃんと動いた。
VensterCEは、TKinterに比べるとウィンドウひとつ表示するにもかなりコードを書かなければいけない。これはVensterがWin32APIをより直接的に操作する目的で作られているようで、コンセプトが違うのでしょうがない。逆に言えば、Win32APIに精通している人間ならば、理解は早いのかもしれない。サポートしているUIでは、TKinterでは用意されていないListViewやTreeView、タップ&ホールド時のポップメニューなどのWindowsコンポーネントが利用できるのはうれしいところ。
また、VensterCE開発プロジェクトの一貫で、WindowsMobileのPIMデータベースであるpoomを扱えるモジュールも用意されているのは魅力だ。(別にVensterCE越しに扱うわけではないようだが)
Vensterについての情報は、Pythonのモジュールの中では日が浅いようで、さほど多くはない。そのようなこともあってかVenstarCEにはチュートリアル代わりのDEMOファイルがいくつか付属している。実際動作させてみると、モーダルダイアログの表示からListview、Treeviewなど、おおよその機能のコードを網羅しているので、さほど苦労しなくても、なんとかなりそう。
また、sample扱いでPyCeIDEというpython用のエディタが付属している。
これはVenserCEで書かれたエディタで、編集中ファイルを実行できる機能などを備えたミニ開発環境である。今までエディタで編集してはファイラー(gsfinderを利用している)の関連づけを頼ってスクリプトを実行するという二度手間がしいられていただけに、PyCeIDEはかなり便利そうだ。(PWZがadesで問題なく動けばTXCマクロから実行できるんだけど、WM6だとウィンドウ表示がおかしくなったりするそうな...WZMobileのマクロパッケージの発売はどうなったんだ!?)
しかしこの、PyCeIDE。開発用に使うとして問題がないわけではない。
まずエディタ部分の日本語表示が極めて怪しい。どうもにバイト数と文字数が直結しているようで、日本語等の2バイト文字を表示させると前後に文字数分のスペースが投入されてしうまう。
そして、みかけのUIがQVGAサイズででかい。ただしVensterCE自体はVGA動作に対応している?用でポップメニュー等はVGAで動作しているぽい。一応、こちらの記事でPyCeIDEのフォントサイズ調整する方法が出ていたので、調整すれば使えなくはないのだが... この問題に関してはVensterCEの公式ページに、対応された新しいPyCeIDE ver.1.1がリリースされている。このバージョンだと、表示の問題は見事解決してる。しかし、一見問題なさそうだが、使っていくと新しく追加されたクラスビュー表示機能が動作しなかったり、一番肝心のエディタ上からのスクリプト実行が動作しないという状態に気付いた。まだまだ常用するには注意が必要そうだ。
非常に便利そうなだけにもったいない話である。なんとか使用する方法はないだろうか?実際、スクリプトコードをみてみると、そんなに長いコードではない。
となれば、答えはひとつ。きっちり動作するQVGA表示だけど動作するVenserCE付属のPyCeIDEをベースに、ver.1.1のVGA対応コードを埋め込んだ、自分用PyCeIDEを作るしかない!
まぁ、丁度漠然とPythonの文法覚えるのにも飽きてきたところなので、具体的な目的を持ってスクリプト書くいい目標ができたとおもい、がんばってみようかなw