2014-02-09 212 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() 
相關問題