tkinter - 来自for循环的图片不会出现

时间:2017-12-04 23:42:18

标签: python tkinter

我正在python中创建一个tkinter应用程序,其中我有一个框架,我想要显示4-5张图片。主题标签上方的代码工作正常,显示1张图片。

但是由于某些原因,图片下面的代码很糟糕。它没有显示任何内容,但它应该显示4张图片。我是否需要从PhotoImages制作一个列表,或者自我出错了什么?

由于

    self.photo = PhotoImage(file=onlyfiles[0])
    self.photo = self.photo.subsample(4, 4)
    label=Label(self, image=self.photo)
    label.pack()
    ################################################
    image_labels = []
    for i in range(len(onlyfiles)): # 4
        self.gombi = PhotoImage(file=onlyfiles[i])
        self.gombi = self.gombi.subsample(4, 4)
        image_labels.append(Label(self, image=self.gombi))
        image_labels[i].pack()

1 个答案:

答案 0 :(得分:2)

Python会自动进行垃圾收集,因此您的图像可能会被吞噬,即使您认为它们仍应存在。尝试将对self.gombi值的引用存储在另一个数组中。这很可能会成功。

尝试这样的事情:

self.photo = PhotoImage(file=onlyfiles[0])
self.photo = self.photo.subsample(4, 4)
label=Label(self, image=self.photo)
label.pack()
################################################
self.image_labels = []
self.image_gombis = []
for i in range(len(onlyfiles)): # 4
    gombi = PhotoImage(file=onlyfiles[i])
    gombi = gombi.subsample(4, 4)
    self.image_gombis.append(gombi)
    self.image_labels.append(Label(self, image=gombi))
    self.image_labels[i].pack()

我没有尝试过这个,但它应该让你走上正确的道路......