我正在使用 TclApp 将我的程序及其所有文件包装在一个独立的可执行文件中——它对 99% 的文件都运行良好。但是,它似乎没有包装或识别我的 .ico 文件......
我正在用 Tcl/Tk 编写一个程序,我试图在左上角设置主窗口图标,如下所示:
wm iconbitmap .main myIcon.ico
wm iconbitmap .main -default myIcon.ico
包装程序后,如果 .exe 文件与 .ico 文件位于同一目录中,它只会使用图标正确破坏 - 而不是其他任何地方。这与首先用 TclApp 包装 Tcl 程序的整个目的背道而驰。应该发生的是TclApp在其虚拟文件系统中将 .ico 文件与 .tcl 文件一起包装,这样无论我的 .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...
所以我有两个问题:我在互联网上的许多博客和帖子上读到 Tcl/Tk 可能存在某种位图错误,或者某些事情往往会出错 - 没有人详细说明。另一个问题是 TclApp 应该使用 tcl 脚本将图标包装起来,以便从任何地方运行我的程序应该就像它与 .ico 文件在同一目录中一样工作,但它不是......
那么我哪里错了?Tcl 代码是否有问题,Tcl/Tk 中的位图是否真的存在错误,或者 TclApp 是否无法正常工作?