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()