我正在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()
答案 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()
我没有尝试过这个,但它应该让你走上正确的道路......