如何更改 Tkinter 中的图片? [英] How can I change the picture inside Tkinter?
本文介绍了如何更改 Tkinter 中的图片?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
from tkinter import *
import threading
view=Tk()
canvas=Canvas(view,width=800, height=800)
canvas.pack()
myImage=PhotoImage(file='a.png')
canvas.create_image(0,0,anchor=NW,image=myImage)
def changeImg():
print("ı came")
canvas.delete("all")
myImage = PhotoImage(file='add.png')
canvas.itemconfigure(view,image=myImage)
view.update()
timer=threading.Timer(5.0, changeImg)
timer.start()
view.mainloop()
它不会改变图像.5 秒后只是白屏.
It doesn't change the image. Just a white screen after 5 secs later.
推荐答案
当您在函数 changeImg()
中删除画布图像时,尝试配置画布图像是没有用的.
As you delete the canvas image in function changeImg()
it's useless to try to configure the canvas image.
canvas.delete("all")
一个解决方案是创建一个新的 PhotoImage 并将其分配给一个新的画布图像.
A solution would be to create a new PhotoImage and assign it to a new canvas image.
然后,与往常一样,您必须保存对图像的引用,否则 Tkinter 会在函数结束时忘记它.
Then, as always, you have to save a reference to the image or Tkinter will forget it when the function ends.
from tkinter import *
import threading
view=Tk()
canvas=Canvas(view,width=800, height=800)
canvas.pack()
myImage=PhotoImage(file='a.png')
canvas.create_image(0,0,anchor=NW,image=myImage)
def changeImg():
print("ı came")
canvas.delete("all")
myImage = PhotoImage(file='add.png') # Create new
canvas.create_image(0,0,anchor=NW,image=myImage) # Create new
canvas.image = myImage # Save reference to new image
view.update()
timer=threading.Timer(2.0, changeImg)
timer.start()
view.mainloop()
这篇关于如何更改 Tkinter 中的图片?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文