Hi, I would like to know how I can clean my canvas after having shown an image, place a name function to erase to be able to clean the image that was shown and to be able to select a new one and it will be displayed on the canvas. If someone can help me, I'll thank them, I leave my code.
from tkinter import *
from tkinter import Tk
from tkinter import PhotoImage
from tkinter import Canvas
from tkinter import NW
from tkinter import Menu
from tkinter import filedialog
from PIL import Image, ImageTk
from sys import argv
import tkinter as tk
ventana = tk.Tk ()
ventana.geometry("900x900+0+0")
ventana.title("")
fondo=PhotoImage(file="p1.gif")
lblFondo=Label(ventana,image=fondo).place(x=0,y=0) #fondo
##########
img_frame = tk.Frame(ventana, height=600, width=800, bg='#faf0e6')
img_frame.pack()
canvas = tk.Canvas (img_frame, height=600, width=800, bg='#faf0e6', relief=tk.SUNKEN)
sbarV = tk.Scrollbar(img_frame, orient=tk.VERTICAL, command=canvas.yview)
sbarH = tk.Scrollbar(img_frame, orient=tk.HORIZONTAL, command=canvas.xview)
sbarV.pack(side=tk.RIGHT, fill=tk.Y)
sbarH.pack(side=tk.BOTTOM, fill=tk.X)
canvas.config(yscrollcommand=sbarV.set)
canvas.config(xscrollcommand=sbarH.set)
canvas.pack(side=tk.LEFT, expand=True, fill=tk.BOTH)
###########
# Variable global q
imagenL = None
ruta = "";
def abrir():
global imagenL
global ruta
ventana.filename=filedialog.askopenfilename(initialdir="C:/Users///")
ruta=ventana.filename
imagen = Image.open(ruta)
imagenL = ImageTk.PhotoImage(imagen)
canvas.create_image(100,100,anchor="center",image=imagenL)
##AQUI DEFINO UNA FUNCIÓN PARA BORRAR O LIMPIAR MI CANVAS DESPUES DE HABER MOSTRADO UNA IMAGEN
def borrar():
imagenL.clearRect(0, 0, canvas.width, canvas.height);
#________MENÚ información de ayuda
class Ayuda_Dialog:
def __init__(self, parent):
text = ("Bienvenido al menú de ayuda\n\n")
self.top = tk.Toplevel(parent)
self.top.title("Ayuda")
display = tk.Text(self.top)
display.pack()
display.insert(tk.INSERT, text)
display.config(state=tk.DISABLED)
b = tk.Button(self.top, text="Cerrar", command=self.cerrar)
b.pack(pady=5)
b.config(bg="CadetBlue")## bg es el boton de cerrar ,aqui se puede cambiar
def cerrar(self):
self.top.destroy()
class Main_Window:
def __init__(self, ventana):
mnuAyuda.add_command(label="Ayuda",command=self.ayuda)
def ayuda(self):
Ayuda_Dialog(ventana)
barraMenu=Menu(ventana)
#crear los menús ..............................................................
mnuArchivo=Menu(barraMenu)
mnuBorrar=Menu(barraMenu)
mnuAyuda=Menu(barraMenu)
#crear los comandos de los menús..........
mnuArchivo.add_command(label="Abrir",command = abrir)
#mnuArchivo.add_command(label="Guardar",command = guardar)
#mnuArchivo.add_command(label="Guardar como",command = guardar)
mnuArchivo.add_separator()
mnuArchivo.add_command(label="Salir",command=ventana.destroy)
mnuBorrar.add_command(label="Limpiar", command = borrar)
............................................... .................
barraMenu.add_cascade(label="Archivo",menu=mnuArchivo)
barraMenu.add_cascade(label="Ayuda",menu=mnuAyuda)
barraMenu.add_cascade(label="Limpiar",menu=mnuBorrar)
ventana.config(menu=barraMenu)
if __name__ == "__main__":
Main_Window(ventana)
ventana.mainloop()