TclApp を使用して、プログラムとそのすべてのファイルをスタンドアロンの実行可能ファイルにラップしています。99% のファイルで正常に動作しています。ただし、私の .ico ファイルをラップまたは認識していないようです...
私は Tcl/Tk でプログラムを書いており、メイン ウィンドウのアイコンを左上に次のように設定しようとしています。
wm iconbitmap .main myIcon.ico
wm iconbitmap .main -default myIcon.ico
プログラムをラップした後、.exe ファイルが .ico ファイルと同じディレクトリにある場合にのみ、アイコンで正しく破棄されます。他の場所にはありません。これは、そもそも TclApp で Tcl プログラムをラップするという全体的な目的に反しています。TclAppは仮想ファイル システムの .tcl ファイルで .ico ファイルをラップするので、.exe ファイルがどこにあるかに関係なく、アイコンを見つけることができます。
私はパスをより明示的に指定しようとしました:
set icon_home [file dirname [info script]];
wm iconbitmap .main [file join $icon_home myIcon.ico]
wm iconbitmap .main -default [file join $icon_home myIcon.ico]
そこには運がありません...
私が得るエラーは次のとおりです。
Error Code: TK LOOKUP BITMAP myIcon.ico
bitmap "myIcon.ico" not defined
while executing...
これに関して私が抱えている 2 つの問題: Tcl/Tk にはビットマップに何らかのバグがあるか、何かがうまくいかない傾向があることをインターネット上の多くのブログや投稿で読みました - 誰も詳しく説明していません。もう1つの問題は、TclAppがアイコンをtclスクリプトでラップする必要があるため、どこからでもプログラムを実行しても、.icoファイルと同じディレクトリにあるかのように動作するはずですが、そうではありません...
それで、どこが間違っているのですか?Tcl コードに問題がありますか、Tcl/Tk のビットマップに本当にバグがあるのでしょうか、それとも TclApp が正しく動作していないのでしょうか??