SeeMe for Linux v1.0.2

SeeMe をまだ Delphi 5 という化石で作っていた頃の v2 画像が何故か出てきた。

seeme200

ナンジャコリャ…今になって見ると我ながら UI が古すぎる!
よくこんなのを恥ずかしげもなく公開していたものだ、信じられない。

XP のデザイン自体も古いけどウィジェットの絶対値配置ってマジ化石だな。
Vista や GNOME 環境を使っていると絶対値配置の奇妙なウイジェット位置に違和感出まくり。

PyGtk で GtkFixed コンテナを使っている初心者を最近見て死ぬほどガッカリしたんだが…
二年前の私はたいして変わらないな。

ということで今日の Python コード。

SeeMe for Linux で直接編集の指定部分。
何も書かれていなければ関連付け起動、でなければそのエディタで。
んでエディタを別プロセスで起動させたならそのまま SeeMe は終了。
というふうにしたかった、てか Windows 版がそうしている。

エディタ指定をしたならその実効ファイル名の引数に渡せばいいので普通なら下記…

os.system("%s %s" % (exe, self.sset.custome_path) )

これだと値が戻ってくるまで待機してしまう、つまり SeeMe はフリーズ状態に。
これでは使えない、ということで探したら os モジュールに spawn* というのがあるらしい。

16.1. os ? 雑多なオペレーティングシステムインタフェース ? Python v2.6.0 documentation

肝心な引数の書き方が可変個引数でよく解らない、検索してみたけどバラバラだし。
自分で色々試して二番目と三番目引数に実効ファイル名、四番目を開きたいファイルのフルパス

def on_textedit(self, widget, event=None):
    exe = self.deditor.edit_editor.get_text()
    if exe == "":
        os.system("xdg-open %s" % self.sset.custome_path)
        self.close()
    else:
        os.spawnlp(os.P_NOWAIT, exe , exe, self.sset.custome_path)
        self.close()

を入れてなんとか成功、イマイチ納得できないけどこれで動くからイイや!
ということで、Python で GUI アプリを作るのは難しい…
アトリビュート変数名の中身は本体スクリプトで、既に千行近くになっているけど…

ということで SeeMe for Linux v1.0.2 の公開。

追記

os.system("%s %s &" % (exe, self.sset.custome_path) )

こんな方法があった…出した直後に見つけるなよ俺。