2024-09-28 21:37:05 发布
网友
我试图在我的简单图形用户界面上显示一些卡片,但是没有显示出来。在
我上传了一个工作文件,里面有我想上传的.gif文件,代码很接近,但不正确。 http://www.filedropper.com/cardgameproblem大小:0Kb,类型:.zip在
要查看的行从257-266开始。我知道这只是个小错误,但我看不出来。在
请帮忙
经过一番修补,我发现当图像存储在GUI的一个变量中时,即使用self时,图像是正确显示的
self
self.gif1 = PhotoImage(file='1.gif') self.canvas.create_image(0, 0, image=self.gif1, anchor=NW)
我不知道为什么,但是这样做是可行的,而只命名gif1(或任何其他名称),而不使用self,则不行。在您的代码和最小的示例中都进行了测试。在
gif1
更新:正如@Bryan指出的,垃圾回收器在__init__完成时处理PhotoImage实例。必须在构造函数的作用域之外保留对实例的引用,例如使用self,或global。考虑到当前的问题,最好创建一个dict,用卡片的名称作为键存储图像。在
__init__
PhotoImage
global
dict
经过一番修补,我发现当图像存储在GUI的一个变量中时,即使用
self
时,图像是正确显示的我不知道为什么,但是这样做是可行的,而只命名gif1
(或任何其他名称),而不使用self
,则不行。在您的代码和最小的示例中都进行了测试。在更新:正如@Bryan指出的,垃圾回收器在
__init__
完成时处理PhotoImage
实例。必须在构造函数的作用域之外保留对实例的引用,例如使用self
,或global
。考虑到当前的问题,最好创建一个dict
,用卡片的名称作为键存储图像。在相关问题 更多 >
编程相关推荐