如何用Tkinter和PIL在GUI窗口添加图片?遇AttributeError报错
解决AttributeError: type object 'Image' has no attribute 'open'问题
你的报错源于命名冲突:from tkinter import *会导入tkinter内置的Image类,直接覆盖了PIL库的Image类,导致调用Image.open()时,实际调用的是tkinter的Image类——而它并没有open方法。
修复后的代码如下:
from PIL import ImageTk, Image import tkinter as tk # 改用别名导入tkinter,避免命名冲突 root = tk.Tk() root.title("My Window") # 注意:iconbitmap需要指向具体的.ico文件,不是文件夹,示例: # root.iconbitmap('C:/Users/Win10/OneDrive/Desktop/your_icon.ico') my_img = ImageTk.PhotoImage(Image.open("panigale.jpg")) mylabel = tk.Label(image=my_img) mylabel.pack() button_exit = tk.Button(root, text="Exit", command=root.quit) button_exit.pack() root.mainloop()
额外补充两点注意事项:
- 确保已正确安装Pillow库(PIL的维护替代版本),未安装可执行
pip install pillow完成安装。 iconbitmap参数必须是具体的.ico文件路径,你当前填写的是文件夹路径,运行时会触发额外错误,建议补充完整的图标文件名。
内容的提问来源于stack exchange,提问作者Krishan Kumar
相关产品推荐
相关产品推荐

