Tkinter Canvas,图像删除
Tkinter Canvas, Deletion of Images
我对此感到非常沮丧,因为它为什么不起作用是完全愚蠢的。
我有:
import random as rand
import time
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root, height = 800, width = 1300)
canvas.grid(row = 0, column = 0)
root.title('Test')
root.update_idletasks()
root.update()
bench1Xadd = 0
bench1Yadd = 0
vCard1 = tkinter.PhotoImage(file = 'card1.gif')
b1Card1 = canvas.create_image(50, 500, anchor = 'nw', image = vCard1)
root.update()
time.sleep(0.03)
canvas.delete("all")
root.update()
input('')
def imageAdd(vCard, slot, x, y):
slot = canvas.create_image(x, y, anchor = 'nw', image = vCard)
return slot
imageAdd(vCard1, b1Card1, 50 + bench1Xadd, 500 - bench1Yadd)
root.update()
input('')
canvas.delete(b1Card1)
root.update()
为什么 canvas.delete()
不工作?
如果我忘记了任何具体内容,我很抱歉。
b1Card1
表示您创建的第一张图像,您几乎立即将其删除。稍后,当您再次尝试删除它时,它不存在,因此不会删除任何内容。
将 b1Card1
传递给 imageAdd
而不是 会导致它更新为新值。相反,您需要保存 imageAdd
:
的结果
b1Card1 = imageAdd(...)
我对此感到非常沮丧,因为它为什么不起作用是完全愚蠢的。
我有:
import random as rand
import time
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root, height = 800, width = 1300)
canvas.grid(row = 0, column = 0)
root.title('Test')
root.update_idletasks()
root.update()
bench1Xadd = 0
bench1Yadd = 0
vCard1 = tkinter.PhotoImage(file = 'card1.gif')
b1Card1 = canvas.create_image(50, 500, anchor = 'nw', image = vCard1)
root.update()
time.sleep(0.03)
canvas.delete("all")
root.update()
input('')
def imageAdd(vCard, slot, x, y):
slot = canvas.create_image(x, y, anchor = 'nw', image = vCard)
return slot
imageAdd(vCard1, b1Card1, 50 + bench1Xadd, 500 - bench1Yadd)
root.update()
input('')
canvas.delete(b1Card1)
root.update()
为什么 canvas.delete()
不工作?
如果我忘记了任何具体内容,我很抱歉。
b1Card1
表示您创建的第一张图像,您几乎立即将其删除。稍后,当您再次尝试删除它时,它不存在,因此不会删除任何内容。
将 b1Card1
传递给 imageAdd
而不是 会导致它更新为新值。相反,您需要保存 imageAdd
:
b1Card1 = imageAdd(...)