1

请帮助修复脚本。

问题是我的脚本出于某种原因显示空白按钮。我需要在每个按钮中都有对应的图像。

from PIL import Image
import glob, os, tkinter

root = tkinter.Tk()

size = 128, 128

for infile in glob.glob("images/*.gif"):
    Im = Image.open(infile)
    pointerIm = Im.thumbnail(size, Image.ANTIALIAS)
    tkinter.Button(root, image=pointerIm).pack()

root.mainloop()
4

1 回答 1

1
  • 你应该通过ImageTk.PhotoImage而不是Image.
  • thumbnail方法不返回任何东西;它就地修改图像。
  • 您需要保留对PhotoImage对象的引用。否则它将被垃圾收集。
    • 在以下代码中,我将 PhotoImage 对象附加到images列表以保留参考。

from PIL import Image, ImageTk
import glob, os, tkinter

root = tkinter.Tk()

size = 128, 128

images = []
for infile in glob.glob("images/*.gif"):
    Im = Image.open(infile)
    Im.thumbnail(size, Image.ANTIALIAS)
    photo_image = ImageTk.PhotoImage(Im)
    images.append(photo_image)
    tkinter.Button(root, image=photo_image).pack()

root.mainloop()
于 2014-02-09T08:33:40.737 回答