【问题标题】:Tkinter PhotoImage: References in Memory?Tkinter PhotoImage:内存中的引用?
【发布时间】:2013-04-27 01:14:16
【问题描述】:

我有一个程序可以一次显示许多 tkinter PhotoImages(相关:我没有使用 PIL)。它目前有几个屏幕,当播放到边缘时,它会加载一个新的 tilemap,在清除旧内容后在 currentTiles 数组中创建更多的照片图像。我相当肯定在程序的其余部分中没有其他对这些照片图像的引用。

奇怪的是,当我在调用 loadLevel 函数后打印数组中最后一项的内容时,它会显示诸如“pyimage3761”之类的内容,并且每次加载新屏幕时都会递增。这是由于 tkinter 跟踪到目前为止已创建了多少,还是因为旧的瓷砖仍在内存中?我一辈子都想不出哪里还有其他参考,所以我只是想知道在我花费数小时寻找错误之前是否还有其他可能性。

谢谢!!

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    每个创建的图像都被分配一个唯一的名称(除非您在创建时指定图像的名称)。这个唯一的名字是通过使用一个单调递增的计数器生成的。

    【讨论】:

    • 即使之前的已经不在内存中了?
    • 这和什么有什么关系?
    • 我担心之前创建的照片图像是否通过我缺少的模糊参考保留在内存中。我似乎找不到一个,所以我想知道 pyimages 上的数字是否会增加,而不管以前的数字是否仍保留在内存中。抱歉不清楚。
    • 无论以前是否存在,数字都会增加。这就是“单调增加”含义的一部分。
    猜你喜欢
    • 2015-07-23
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多