create_image()函数python只显示循环中的最后一个图像

时间:2017-10-15 19:27:13

标签: python python-3.x tkinter tkinter-canvas

我正在尝试创建一个在循环中显示一系列图像的程序,但create_image()函数仅绘制我尝试绘制的最后一个图像。

for i in range(len(imgList)): 
    filename = PhotoImage(file = str(imgList[i]).lower() + ".png")
    C.create_image(45 * (i + 1), 5, anchor=NE, image=filename)
    print("created image")

这会打印“创建的图像”,但需要多次打印,但只显示最后一张图像 imgList只是所有图像的名称

1 个答案:

答案 0 :(得分:0)

在tkinter中显示图像时,您需要保留对分配给它们的变量的引用,否则会收集垃圾。请尝试以下方法:

c.images = list()
for i in range(len(imgList)): 
    image = PhotoImage(file = str(imgList[i]).lower() + ".png")
    c.create_image(45 * (i + 1), 5, anchor=NE, image=image)
    c.images.append(image)
    print("created image")