tkinter:帮助修复在同一窗口打开两次时创建的照片图像错误

时间:2014-01-04 16:48:26

标签: python tkinter

我认为我几乎已经缩小了这个问题,所以我会把它放在这里:

我对正在处理的程序进行了更改。发生错误时,更改会使某个tkinter窗口重新打开。这是通过将其移动到一个函数来完成的,并且如果需要,让脚本调用该函数。这解决了用户必须重新启动程序的问题。

我程序中的所有窗口都有一个图标,使用以下行在每个窗口中调用和实现:

Thumbnail = PhotoImage(file = "C:\\Users\\Owatch\\Pictures\\NetSendClient\\files\\GIF\\TK_ICON.gif")
    Window.tk.call("wm","iconphoto",Window._w, Thumbnail)

这适用于整个程序中的每个窗口。但是,当调用同一窗口打开第二次时,它会继续生成错误。

错误:

File "C:\Users\Owatch\Documents\Unisung\Produced Content\NetSendClient[0.9]\files\Program_Files\NS[9].py", line 208, in SCN
    Window.tk.call("wm","iconphoto",Window._w, Thumbnail)
_tkinter.TclError: can't use "pyimage4" as iconphoto: not a photo image

我不确定为什么第二次打开窗口时会出现此错误。提供有关为何需要重新打开的更多信息。当用户按下此窗口内的按钮时,它会触发一个函数,在稍后重新打开之前调用要销毁的窗口。所以也许是因为它没有被干净地处理掉或。我不知道。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

问题是由同时使用相同图标的多个窗口之间的冲突造成的。

我不能再具体了,但问题是通过消除临时和顶级窗口来解决的,这些窗口在另一个打开之前没有销毁自己。

我希望这对其他人有所帮助。我恐怕无法提供比此更多的信息。