我正在使用TclApp將我的程序及其所有文件封裝在一個獨立的可執行文件中,並且它對99%的文件都能正常工作。然而,它似乎並沒有包裝或識別我的.ico文件...使用TclApp封裝程序,在Tcl/Tk中使用位圖問題
我正在寫一個程序在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...
所以這兩個問題我有這個:我在互聯網上閱讀過很多博客和文章,Tcl/Tk可能會有一些位圖錯誤,或者有些東西往往出錯 - 沒有人詳細說明。另一個問題是,TclApp應該用tcl腳本包裝圖標,以便從任何地方運行我的程序應該能夠像在.ico文件中一樣運行,但它不是...
那麼我哪裏錯了? Tcl代碼有什麼問題,Tcl/Tk中是否有位圖錯誤,或者TclApp無法正常工作?
我隱約記住這是需要一個_OS-recognized_文件名,但它不是我已經試驗了很長一段時間... –
是的這很奇怪 - 但我現在確認它必須是一個包裝問題; 我決定嘗試寫出.ico文件的完整路徑,現在我可以在計算機上的任何位置運行可執行文件,因爲我應該可以 - 但仍然無法解析。該程序無法找到另一臺計算機上的圖標... – Grandclosing
更新:TclApp有一個「自定義圖標」部分,您可以在其中指定一個自定義的.ico文件 - 我使用的圖標文件內嵌入多種尺寸,全部的32bpp;但是,TclApp忽略了這些尺寸,就好像它們不存在一樣,也不會將圖標包裝到程序中。它一定是個bug ... – Grandclosing