python 的新手,到目前为止大多喜欢它,但这个问题很奇怪。完全相同的代码从根开始工作,但不在方法中工作。这不会渲染图像:from tkinter import * root = Tk() def draw(): print("does not work") canvas = Canvas(root, width = 300, height = 300) canvas.pack() img = PhotoImage(file="Db.png") canvas.create_image(20,20, anchor=NW, image=img) draw()mainloop() 但这工作正常:from tkinter import * root = Tk() print("This works fine")canvas = Canvas(root, width = 300, height = 300) canvas.pack() img = PhotoImage(file="Db.png") canvas.create_image(20,20, anchor=NW, image=img) mainloop()任何帮助,将不胜感激。
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
正如 martineau 在上面的评论中所解释的,代码的问题是 img 变量仅在函数处理时存在,它在函数返回后被删除,并且需要我保留对图像对象的引用。将其设为全局变量可以纠正该问题。
添加回答
举报
0/150
提交
取消