スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tkinterではまったところその1(アイコンイメージの取り込み)

TkinterでWindowsアプリを作るとWindowsタイトルに標準ではTkという赤い文字のアイコンがでてしまいます。
正直、今時これはあり得ないですorz

かっこいいアイコンに変更するには、wm_iconbitmapで外部のアイコンファイルをロードすることができます。

PyInstallerで配布する場合、PyInstallerに対してアイコンファイルを同梱し、実行環境から読めるようにしなければなりません。

ざっと見たところ、PyInstallerで作成した実行ファイルは%Temp%フォルダに展開されるようで、そこにアイコンファイルが展開されていればロードできそうです。

なかなかこの辺のKnow-Howは日本のサイトでは見つかりませんね><

試行錯誤した結果、環境変数に_MEIPASS2が入っていれば、PyInstaller実行環境と認識し、そこにアイコンファイルが展開されていれば、ロードできることがわかりました。


if '_MEIPASS2' in os.environ:
self.master.wm_iconbitmap(os.path.join(os.environ['_MEIPASS2'], 'アイコンファイル名'))


上記で、プログラムよりアイコンをロードする仕組みが組み込まれたので、次にPyInstallerにアイコンファイルを同梱するようにしなければいけません。

どうもコマンドラインオプションにはそのような記述がなく、Makespec.pyで作成した.specファイルへ直接記述することで同一パッケージに組み込むことができるようです。

4行目
pyz = PYZ(a.pure)
前後に以下の行を追加

a.datas += [('アイコンファイル名','アイコンパス','DATA')]

注意事項としてはマルチバイトフォルダ名だとエラーがでてしまうので、シングルバイトのフォルダで実行した方がいいと思います。

あと、

Makespec.py -F -K -w --icon=アイコンファイル名 xxx.py

のオプションをお忘れなく!

あとはBuild.pyをしてできあがり!

Pythonというマニアックな言語の上に、Tkinterとかさらにマニアックな環境だと、行き詰まるとなかなか前に進めませんね><
けど、ちゃんと動いて爽快です!

ふぅ~
関連記事
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Portable Python

コメント

Secret

プロフィール

cherrypy

Author:cherrypy
四方山話とか、にわかプログラミングなどについて語ります。

カウンター
はてな人気エントリー
最新記事
スポンサードリンク
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。