Soru : Treeview nedir?

Merhabalar,
Treeview örneklerine rastladım ve ben veritabanına kaydettiğim bir şeyi treeview üzerinde sütun ve satır ile programda göstermek istiyorum. Fakat treeview’in nasıl yazıldığına dair hiçbir şekilde Türkçe kaynak bulamadım. Yardımcı olursanız sevinirim

Merhaba, tam olarak ne öğrenmek istiyorsunuz bilmiyorum ama aşağıdaki kodlar sizin için başlangıç olabilir. Treeview metotlarını araştıra araştıra da öğrenebilirsiniz. Sormak istedikleriniz olursa cevaplamaya çalışırız.

import tkinter as tk

from tkinter.ttk import Treeview

root = tk.Tk()

# Treeview'de kullanacağımız sütunlar
columns = ["A", "B"]

# Treeview'i tanımlayalım.
# show parametresi, başlıkların görünmesini sağlar.
treeview = Treeview(master=root, columns=columns, show="headings")
treeview.pack()


for i, j in enumerate(columns):
    # Sütun ayarlarını yapalım.
    treeview.column(
        column=f"#{i + 1}",  # Sütunlara ait özel item ismi.
        width=210,           # Sütunun genişliği
        anchor=tk.CENTER     # Sütuna eklenecek verilerin konumu
    )
    # Sütun isimlerini ekleyelim.
    treeview.heading(
        column=f"#{i + 1}",  # Sütuna ait özel itemi seçiyoruz.
        text=j               # Ve bu sütunun ismini veriyoruz.
    )
    
# Sütuna eklenecek veriyi oluşturalım.
data = {i: i ** 2 for i in range(5)}    

# Bir for döngüsü yardımıyla sütuna veriyi ekleyelim.
for index, (k, v) in enumerate(data.items()):
    treeview.insert(
        parent="",           # Parent parametresi boş kalıyor.
        index=index,         # Verinin hangi satıra ekleneceğini belirtir.
        values=(k, v)        # Kaç sütun varsa o kadar veriyi ihtiyaç var.
    )


# Satır verisini seçip çift tıkladığımızda çalışan bir fonksiyon yazalım.
def satir_verisini_sec():
    item = treeview.item(treeview.selection())
    print(item["values"])
    

# Çift tıklama ile fonksiyonu bağlayalım.
treeview.bind(
    sequence="<Double-Button-1>", 
    func=lambda event: satir_verisini_sec()
)
    
root.mainloop()
1 Beğeni

Teşekkür ederimm. Bunu veritabanıyla bağlantı kurup deneyeceğim :relaxed: