为了账号安全,请及时绑定邮箱和手机立即绑定

如果代码在方法中,Canvas 将不会显示 PhotoImage 图片

如果代码在方法中,Canvas 将不会显示 PhotoImage 图片

料青山看我应如是 2021-10-26 15:52:45
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 变量仅在函数处理时存在,它在函数返回后被删除,并且需要我保留对图像对象的引用。将其设为全局变量可以纠正该问题。



查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信