Tkinter 2.7中调用mainloop()后图片无法显示问题求助
修复Tkinter 2.7中图片无法显示的问题
我帮你找到了代码里两个导致图片不显示的关键问题,咱们来逐个解决:
问题1:PhotoImage初始化参数错误
在Python 2.7的Tkinter里,PhotoImage不能直接传文件名作为第一个参数,必须显式指定file参数来指向图片路径。你的代码里PhotoImage("Python.png")是错误的写法。
问题2:图片对象被垃圾回收
photo是函数内部的局部变量,当Label完成初始化后,Python的垃圾回收机制可能会把这个变量销毁,导致Label找不到图片资源。解决办法是给Label添加一个属性来保留对photo的引用。
修复后的完整代码
from Tkinter import Tk, PhotoImage, Label def start_up(): app = Tk() app.title("Tower") app.geometry('600x900') # 修复1:显式指定file参数 photo = PhotoImage(file="Python.png") label = Label(app, image=photo) # 修复2:保留图片对象的引用,防止被垃圾回收 label.image = photo label.pack() app.mainloop() start_up()
另外还要注意:确保Python.png和你的脚本文件在同一个目录下,如果不在的话,要传入完整的图片路径(比如file="/home/user/Pictures/Python.png")。
内容的提问来源于stack exchange,提问作者jaxk
相关产品推荐
相关产品推荐

