2014-02-09 161 views
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() 

回答

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() 
相关问题