2017-04-25 2 views
1

Je suis très frustré à ce sujet, car il est complètement stupide de savoir pourquoi il ne fonctionne pas.Tkinter Toile, suppression d'images

Je:

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() 

Pourquoi pas le travail canvas.delete()?

Si j'ai oublié quelque chose de spécifique, je suis désolé.

Répondre

1

b1Card1 représente la première image que vous créez, que vous supprimez presque immédiatement. Plus tard, lorsque vous essayez de le supprimer à nouveau, il n'existe pas, donc rien ne sera supprimé.

Passant b1Card1-imageAdd ne pas l'amener à être mis à jour avec la nouvelle valeur. Au lieu de cela, vous devez enregistrer le résultat de imageAdd:

b1Card1 = imageAdd(...)