Tkinter画布,删除图像

时间:2017-04-25 14:04:01

标签: python-3.x tkinter tkinter-canvas

我对此感到非常沮丧,因为它为什么不起作用是完全愚蠢的。

我有:

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()无效?

如果我忘记任何具体的内容,我很抱歉。

1 个答案:

答案 0 :(得分:2)

z表示您创建的第一个图像,您几乎立即将其删除。稍后,当您尝试再次删除它时,它不存在,因此不会删除任何内容。

a传递给b1Card1 会导致使用新值进行更新。相反,您需要保存b1Card1的结果:

imageAdd