Python Tkinter向页面添加图片报错,寻求解决方法
解决Tkinter添加图片的运行错误
常见错误原因及修复方案
1. 路径转义问题
Windows路径里的反斜杠\会被Python当成转义字符解析,导致程序找不到目标图片文件。
修复方式三选一:
- 使用原始字符串,在路径前加
r:Image.open(r'F:\project\ShopManagement\images\psettinground.jpg') - 把反斜杠替换为正斜杠
/:Image.open('F:/project/ShopManagement/images/psettinground.jpg') - 用双反斜杠
\\代替单反斜杠:Image.open('F:\\project\\ShopManagement\\images\\psettinground.jpg')
2. PhotoImage对象被垃圾回收
Tkinter的PhotoImage对象如果没有持久化引用,会被Python的垃圾回收机制清理,导致图片无法显示或抛出错误。
修复方法:将PhotoImage对象绑定到Label的属性上,保留引用:
img_photo.image = photo1in
修正后的完整代码
from PIL import Image, ImageTk from tkinter import Label photoforside = Image.open(r'F:\project\ShopManagement\images\psettinground.jpg') photoforside = photoforside.resize((200, 100)) photo1in = ImageTk.PhotoImage(photoforside) img_photo = Label(first_frame, image=photo1in, bg="#d4d9cd") # 绑定引用,避免被垃圾回收 img_photo.image = photo1in img_photo.place(x=770, y=5, width=200, height=228)
内容的提问来源于stack exchange,提问作者Fathima Nahda
相关产品推荐
相关产品推荐

