我正在开发一个应用程序来显示图像网格,非常类似于iPhoto或其他类似程序的主屏幕。要做到这一点,我设置了一个画布,并通过文件名列表循环,创建从每一个光象,并在画布上显示它们:Tkinter create_image not displayed
self.canvas = Canvas(self.bottomFrame, width = 700, height = 470, bg = "Red")
self.canvas.pack()
for i, filename in enumerate(image_list):
photo_image = PhotoImage(filename)
self.canvas.create_image(100*(round(i/4)+1), 100*(i+1), image = photo_image)
self.labelList.append(photo_image)
的labelList是应用程序类的属性,以及image_list填充了.gif照片的文件名。但是,当我运行该应用程序时,不会显示图像。我知道画布在那里,因为一个红色的矩形出现了,但它上面没有图像。
我在这里错过了什么 - 我滚动浏览无尽的讨论寻找结果,并没有找到任何工作。
什么类型的文件是'filename'? – mgilson
“应用程序必须保留对图像对象的引用。”从http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-method。你确定吗? – lolopop
@pythonm - 引用应该保存在'self.labelList'中。那里没问题。 – mgilson