Merhaba,
Bir algoritma mı tkinter ile görselleştirme yapıyorum fakat şöyle bir sorun yaşıyorum. Tek bir canvas değişkeni üzerinden x adet farklı konumlarda sayısını bilmediğim kadar canvas oluşturuyorum. Bunların hepsini tek bir değişkenden tahminimce ekrandan kaldırmak mümkün değildir. Varsa yazmanızı rica ediyorum. Eğer yoksa da şunu yapmak istiyorum ekranda ne var ne yok tüm widgetları her şeyi silmesini istiyorum. Bunu yapabilir miyim?
Merhaba, hoş geldiniz.
Bir canvas
üzerinde birden fazla canvas
mı oluşturuyorsunuz yoksa create_arc
, create_bitmap
, create_image
, create_line
, create_oval
, create_polygon
, create_rectangle
, create_text
ve create_window
fonksiyonlarından birini veya bir kaçını kullanarak nesneler mi oluşturuyorsunuz?
Eğer canvas
üzerinde başka canvas
lar oluşturuyorsanız, aşağıdaki kod ile child
widgetleri yok edebilirsiniz.
for i in canvas.winfo_children():
i.destroy()
veya sadece canvas.destroy()
yazarak da hem canvas
’ı hem de ebeveyni olduğu diğer widgetleri yok edebilirsiniz.
Ama eğer yukarıda belirttiğim fonksiyonları kullanarak nesneler oluşturuyorsanız ve bu nesneleri silmek istiyorsanız, aşağıdaki örnekte gösterildiği gibi yapabilirsiniz:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(master=root)
canvas.pack()
canvas.create_oval(0, 0, 50, 50, fill="red")
canvas.create_oval(100, 100, 150, 150, fill="blue")
def hepsini_sil():
for i in canvas.find_all():
canvas.delete(i)
button = tk.Button(
master=root,
text="Hepsini Sil",
command=hepsini_sil
)
button.pack()
root.mainloop()
Silinecek nesneleri, nesnelerin tag
özelliğine veya nesnelerin tipine göre de belirleyebilirsiniz.