【问题标题】:how to display the image in the button?如何在按钮中显示图像?
【发布时间】:2023-03-11 09:00:01
【问题描述】:

请帮助修复脚本。

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

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

【问题讨论】:

    标签: python python-3.x tkinter python-imaging-library pillow


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2014-05-07
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      相关资源
      最近更新 更多