2006年6月アーカイブ
2画面ファイラーを作ろう 6
- Date
- '06-06-27(火曜日) 22:13:52
- Category
- コンピュータ
2画面ファイラーを作ろう その5
- Date
- '06-06-15(木曜日) 23:39:34
- Category
- コンピュータ
5であってるのか?
やったこと
・キー設定をxmlの設定ファイルから読み込むようにした
・システム関連付けのアプリで実行できるようにした
・ディレクトリ一覧を設定しておいて、一覧から選択移動できるようにした
やりたいこと
・Linuxで動かすとフォーカス問題があやしく上手く動かないので直す(本末転倒)
・ファイルコピー実装
ファイラーを作ろう(その4)
- Date
- '06-06-13(火曜日) 20:48:55
- Category
- コンピュータ
アンダーラインは難しいので取り合えず背景色で対応してみました。
カーソル上下とタブは取り合えず実装
PythonからWindowsのバイナリを作成してみました。
Windows用バイナリ
まあ、カーソル動く以外は能がないですが…
このあとの実装項目としては
・リターンキーでアプリ実行
・ファイルコピー、移動、削除実装(cpコマンドでいいか?)
・カスタマイズが容易なようにxmlで設定するようにする
でしょうかね
ファイラーを作ろう(その3)
- Date
- '06-06-10(土曜日) 21:01:56
- Category
- コンピュータ
アンダーラインを引く問題解決は
結局描画イベントの中からスーパークラスの描画メソッドを呼び出すことで解決。
dc = wx.PaintDC(self) dc.BeginDrawing() wx.ListCtrl.OnPaint( self, event ); # 先に描画させて dc.SetPen(wx.RED_PEN); rect = self.GetItemRect(self.cursor) # 後で描く dc.DrawLine(rect.x+2, rect.y+rect.height-1, rect.x+rect.width, rect.y+rect.height-1) dc.EndDrawing()
dcを取得してリリースする関数がないのですごく不思議な気分。
BeginDrawing()はマニュアルにはやらないとダメと書いてあるが、
なくても問題なく動くんだよなぁ…
って、今Linuxで動かしたら動かなかったよ。Windows版なら動いたのに…
ファイラーを作ろう(その2)
- Date
- '06-06-07(水曜日) 11:34:12
- Category
- コンピュータ
ディレクトリを移動するとこまではできた
BSキーで上のディレクトリ。エンターキーでカーソル位置のディレクトリ。
TABキーで左右のウィンドウ切り替え(タブストップで切り替えているだけだが)
画面は変わってないので添付せず。
次にカーソル位置にアンダーラインを入れようとしたのだが、
EVT_PAINTメッセージ(いわゆるWM_PAINT)をトラップしてアンダーラインを描いても
コモンコントロール(ListCtrl)の描画処理が上書きして消してしまう。
割り込みを後で登録するために処理が先になってしまっているようだ。
ちろちろ調べるとどうも、コモンコントロールの上にDCで描画するのは
結構めんどくさいようだ。
解決策として以下順序で作業
・割り込みの順番を変えられないか
・wxWidgetsにあるGridのほうはもうちょっと描画が自由であればそっちを使えないか
・アンダーラインはとりあえずあきらめる(あとまわし)
・細長いウィンドウを描画してアンダーラインの変わりにする
・全部自分で描く
ファイラーを作ろう その1
- Date
- '06-06-02(金曜日) 00:20:26
- Category
- コンピュータ
Windowsでは2画面ファイラーのKFってのを使ってますが、
Linuxにはいい2画面ファイラーがありません。
CUIオンリーならいくつかあるけどやっぱりD&Dも使いたいじゃん?
というわけでKrusaderをちょっと使ってみたがキーコンフィグがちょっと弱い。
複雑な機能はいらなくてコピーと移動と削除とアプリの起動ができればいいだけなので
ちまちまと作ってみるかとはじめてみました。
昔と違って今は楽に作れるしね。
とりあえず何も知らないゼロから初めて(ここ数年JavaのWebアプリしかやってない)
4日目で2画面にわけてファイル一覧を表示するところまで到達。

4日で10時間くらいか?ライブラリが進化したねぇ。
次はディレクトリ移動できるようにしようかの
開発環境はPython2.4+wxPython2.6


