Tkinter create_image不显示

时间:2012-09-11 13:32:42

标签: python tkinter

我正在开发一个应用程序来显示图像网格,就像iPhoto主屏幕或其他类似程序一样。为此,我设置了一个Canvas,并遍历文件名列表,从每个文件名创建一个PhotoImage,并在画布上显示它们:

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是Application类的一个属性,image_list填充了.gif照片的文件名。但是,当我运行应用程序时,不显示任何图像。我知道画布在那里,因为出现了一个红色矩形,但它上面没有图像。

我在这里缺少什么 - 我滚动了无数的讨论页面,寻找结果并且没有发现任何有效的工作。

1 个答案:

答案 0 :(得分:2)

photo_image = PhotoImage(filename)

应该是

photo_image = PhotoImage(file=filename)

否则,您只需设置name,因为__init__的{​​{1}}功能如下所示:

PhotoImage

另请注意,__init__(self, name=None, cnf={}, master=None, **kw) 只能处理GIF和PGM / PPM文件。如果您需要其他文件类型,则必须使用PIL(example)。