如何在Tkinter中用Pillow插入图片?Windows下显示方法求解
Windows下Pillow显示图片的命令及代码修正
Windows系统中,Pillow的
Image.show()方法默认会调用系统自带的照片查看器,无需手动指定command参数,直接调用即可。如果非要手动指定命令,可用"explorer.exe",但通常没必要。你的代码存在几处错误,修正如下:
ImageTk.PhotoImage对象没有show()方法,show()是Pillow原生Image对象的方法,得对打开的原始图片对象调用。- 你误将
FstAlien.pack()写为放置图片的代码,实际应该是FstAlLabel.pack()(或用grid布局)。 Entry控件的row=100, column=100会让控件跑到窗口外,建议改成合理数值。
修正后的完整代码:
import tkinter as tk from PIL import Image, ImageTk CHONE_2Sc = tk.Tk() CHONE_2Sc.configure(background="lime") CHONE_2Sc.title("ROCK,PAPERS,SCISSORS") # 打开原始图片,保留对象避免被回收 alien_img = Image.open("alien.jpg") # Windows下直接调用show()即可,自动用系统照片查看器打开 alien_img.show() # 创建Tkinter兼容的图片对象,放到Label里显示在窗口 FstAlien = ImageTk.PhotoImage(alien_img) FstAlLabel = tk.Label(CHONE_2Sc, image=FstAlien, bg="lime") FstAlLabel.pack(pady=10) # 调整输入框布局位置 Object = tk.Entry(CHONE_2Sc) Object.grid(row=1, column=0, padx=10, pady=5) Object.insert(0, "Enter your object: ") # 启动窗口主循环 CHONE_2Sc.mainloop()
补充说明:
- 若需手动指定Windows下的命令,可写成
alien_img.show(command="explorer.exe"),但Pillow会自动识别系统并调用合适程序,一般不用额外设置。 - 必须保留原始
Image对象(比如示例中的alien_img),否则Tkinter的PhotoImage可能因引用被回收导致图片不显示。
内容的提问来源于stack exchange,提问作者Abdullah Karan
相关产品推荐
相关产品推荐

