Python 在tkinter中显示图像

Python 在tkinter中显示图像,python,tkinter,Python,Tkinter,我不知道为什么这段代码在运行时没有显示任何图像 from tkinter import * import os root = Tk() images = os.listdir() i = 0 for images in images: if images.endswith(".png"): photo = PhotoImage(file=images) label = Label(image=photo) label.

我不知道为什么这段代码在运行时没有显示任何图像

from tkinter import *
import os

root = Tk()
images = os.listdir()
i = 0
for images in images:
    if images.endswith(".png"):
        photo = PhotoImage(file=images)
        label = Label(image=photo)
        label.pack()
        print("reached here")
root.mainloop()

我打了一些比赛,取得了一些成绩。您可以对其进行优化:

from tkinter import *
import os

root = Tk()
images = os.listdir()
imglist = [x for x in images if x.lower().endswith(".png")]
i = 0
photolist = []
labellist= []
for image in imglist:
    photo = PhotoImage(file=image)
    photolist.append(photo)
    label = Label(image=photo)
    labellist.append(label)
    label.pack()
    print("reached here with "+image)

root.mainloop()

所以基本上你需要安装
PIL

pip install PIL
然后

如果要使用
pack()
manager,请更改

for image in imglist:
    ....... #same code as before but grid() to 
    label.pack()
如果有任何错误或疑问,请务必告诉我


干杯

你大概收到了“到达这里”的消息?是的,我收到了“到达这里”的消息,但它没有显示图像。你能告诉我为什么它没有显示图像吗?这可能是因为图像是“采集的”,你能试一下吗,
label.image=photo
保留一个引用并让我知道?那么我应该做些什么来避免这种情况呢?我实际上认为
labellist
是不必要的,为什么要使用
I=0
呢?哦,你已经尝试过使用列表理解了……但它仍然显示一个图像而不是多个图像images@Vasu这可能是因为你的图像更大大小?试着这样说,看看代码对enumerate(imglist)中的索引、图像是否实际有效:,然后更改
label.grid(row=0,column=index)
。如果您愿意,我还可以添加一个带有调整大小的答案。
for image in imglist:
    ....... #same code as before but grid() to 
    label.pack()