mieki256's diary



2008/06/21() [n年前の日記]

#1 [python] PythonからWebブラウザを起動する方法がわからない

アプリのヘルプ文書をhtmlで用意するとして、それをwxPythonで作ったアプリから開く方法がわからない。メニューのヘルプ→ヘルプ、を選んだら、html文書を各環境の標準ブラウザで開かせたいのだけど。

Python のモジュールに _webbrowser という名前そのまんまのモノがあって。よく見かける、httpから始まるURLだったら、webbrowser.open(URL) としてやるだけでブラウザは起動する。が、ローカルHDD内に入ってる、htmlファイルのパスを ―― 「C:\\hoge\\fuga」+「/piyo/index.html」なんてのを渡そうとすると、エラーが出てしまう。

_urllib というモジュールの中に、pathname2url(path) というメソッド(?)があって。「ローカルシステムにおける記法で表されたパス名 path を、URL におけるパス部分の形式に変換」してくれるらしい。が、前述のパスを渡すと、「///C|/hoge/fuga/piyo/index.html」という記述になる。得られた文字列の頭に「file:」でもつけたして webbrowser.open(URL) を呼ぶと、Firefox から「file:///C なんてアドレスは知らんがな」的文句を言われてしまうわけで。

IEはどうだったか知らないけれど、Firefoxの場合、「|」が複数のURLを渡すための区切り文字になっていたような気がする。なもんだから、「file:///C|/hoge/fuga/piyo/index.html」をFirefoxに渡すと、「file:///C」と「/hoge/fuga/piyo/index.html」という2つのURLモドキを渡してしまうのではないか。と想像。

OSの関連付けに従ってファイルを開く、 _os.startfile() という手もあるらしいと知る。

カレントディレクトリを「C:\\hoge\\fuga\\piyo\\」にしてもOKなのであれば、webbrowser.open("index.html") で開けるみたい、ではある。しかし、カレントディレクトリを「C:\\hoge\\fuga\\」にして、webbrowser.open("piyo/index.html") ではダメ。

アレ? webbrowser.open("C:\\hoge\\fuga\\piyo\\index.html") であっさりブラウザで開けてしまった。そのOSのパス区切り文字を正しく使ったパスを与えてやれば、問題なく動く、のであらうか。であれば、
path = os.path.abspath("piyo/index.html")
webbrowser.open(path)
みたいな感じでいいのかな?

#2 [prog][python][cg_tools] アプリ用のアイコン画像を作成

Inkscapeで元画像を作成。
  1. ファイル → ドキュメントの設定 → ページ → ページサイズ → Icon 48x48に変更。正方形状のドキュメントにする。
  2. ざっくりと描いて。
  3. 表示 → アイコンプレビューでアイコンサイズになったときの見栄えを確認。
  4. .svg で保存。
  5. ファイル → ビットマップにエクスポート → 96x96ドットのサイズでpng形式で出力。

IcoFX でアイコン化。
  1. 先ほど作成した画像を、「True Color + アルファチャンネル(32ビット)」「48x48」で開く。
  2. アイコン → イメージからWindowsアイコンを作成、を選択。
  3. 32x32-32bit、16x16-32bit、48x48-8bit(256色)、32x32-8bit、16x16-8bit、の画像を作成。
  4. アイコン画像 .ico として保存。

以上、1 日分です。

過去ログ表示

Prev - 2008/06 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project