2012年3月24日土曜日

NetWalkerでアドレス帳

アドレス帳のスクリプトをNetWalkerでも動かしてみました。
しかし、リストコントロール(wx.ListCtrl)の動作がWindowsとちょっと違うようです。
Windowsでは単純にフレームにListCtrlを配置して、Sizerまかせにすればちゃんとフレームサイズに合わせてリサイズしたけれど、NetWalker上ではうまくいきません。リサイズしないうえに、配置したボタンがリストコントロールの下にもぐってしまいます。いろいろ試すと、ListCtrlのクリエイターにsizeを渡さずに、SetMinSizeで指定すると、ボタンが下にもぐってしまう現象を回避できるようです。しかし、SetSizeを同時に行ってしまうとうまく回避できません。この方法では、Windowsでうまく配置できませんでした。そのようなわけで、WindowsでもNetWalkerでも同じソースで動かしたいので、困りました。
結局、Panelを作ってその中にListCtrlを配置することで、NetWalkerでボタンが下にもぐって見えなくなってしまう問題を回避しつつ、Windowsでもちゃんと表示されるようにしました。EVT_SIZEイベントも使って、無理やりな感じです。本当はSizerまかせにしたかったです。

NetWalkerの環境で、リストコントロールのサイズが動的に変化しないのは仕様なのでしょうか。同じwxPython2.8でも細かいバージョンの違いなのか、わからないままです。とりあえず、画面上小さすぎず、大きすぎずの大きさのリストを初期に作成することで妥協しました。

スクリプトの中には、テストコードが入ったままで、汚いですが、自分用のメモとして残してあります。

トライアンドエラーで妥協点をさぐったので、NetWalker上でスクリプトの編集をけっこうやりました。そこで、Bluetoothキーボード CPKB/BT(IO-DATA)を利用しました。このキーボードには、TABキーは刻印されていませんが、TABキーは、Fnキー+[?/]キーで入力できます。|(縦棒)記号も刻印がないのですが、こちらは、Fnキー+SHIFTキー+[=-]キーで入力できました。

0 件のコメント: