我有一个有趣的问题,我似乎无法解决。下面的代码应该在较大的图像上显示一个较小的图像,该图像位于Tkinter画布上:
x = int(int(self.city[3]))-self.left
y = int(int(self.city[2]))-self.upper
print x, y
self.target3 = self.canvas.create_image(x, y,image=self.cross, anchor='nw')
time.sleep(2)
#--------TO THROW ERROR
self.target3.image = self.cross
#--------
#self.canvas.delete(self.target3)
self.gameplay()
使用
在程序的早期声明了self.crossself.crosshairs = Image.open("targetcrosshair.gif")
self.cross = ImageTk.PhotoImage(self.crosshairs)
我知道垃圾收集不是问题,其他人似乎已经陷入了困境,因为如果没有这部分代码,图像仍会在主循环中反复使用。
作为我搜索解决方案的一部分,我添加了self.target3.image = self.cross代码片段,导致它出错,然后我的图像自然地出现了它应该做的事情。知道为什么图像只在抛出错误时出现?
另外,我已经检查了x和y值,它们应该落在画布上,当我强制显示错误时会显示它们。