Я пытаюсь создать кнопку, которая очистит холст, а затем поместит изображение на холст, выбранный в диалоговом окне файла Tkinter.Я использую canvas.delete("all")
метод , доступный здесь , чтобы попытаться очистить холст перед выбором нового изображения, но новое изображение появляется над существующим изображением, а не заменяет его.
from Tkinter import *
import Tkinter, Tkconstants, tkFileDialog
from PIL import Image, ImageTk
root = Tk()
canvas1 = Canvas(root, width=500, height=500)
canvas1.pack()
class widgets:
def __init__(self, parent):
self.myParent = parent
self.myContainer1 = Frame(parent)
self.myContainer1.pack()
self.button1 = Button(self.myContainer1, command=self.button1click)
self.button1.config(text="Select Image")
self.button1.pack(side=TOP)
def button1click(self):
canvas1.delete("all")
path = tkFileDialog.askopenfilename(filetypes=[("Image File", '.png')])
im = Image.open(path)
tkimage = ImageTk.PhotoImage(im)
imglabel = Label(canvas1, image=tkimage)
imglabel.image = tkimage
imglabel.pack()
widgets = widgets(root)
root.mainloop()