Вот что у меня есть:
Код: Выделить всё
import os
import tkinter as tk
from tkinter import ttk
from PIL import Image, ImageTk
# Function to update the table with live status
def update_table():
# Example data (replace with your own logic)
streamers = [
{"name": "Streamer1", "status": "Live"},
{"name": "Streamer2", "status": "Offline"}
]
for streamer in streamers:
streamer_name = streamer["name"]
status = streamer["status"]
logo_path = f"assets/logos/{streamer_name}.jpg"
# Insert item into treeview
item_id = tree.insert("", "end", values=(streamer_name, status))
# Display image if available
if os.path.exists(logo_path):
logo = Image.open(logo_path)
logo = logo.resize((50, 50))
logo = ImageTk.PhotoImage(logo)
tree.image_names[streamer_name] = logo # Store reference to image
tree.set(item_id, column="#0", value=logo) # Error occurs here
# Create main application window
root = tk.Tk()
root.geometry("600x400")
root.title("Streamer Status")
# Create frame to hold treeview
frame = tk.Frame(root)
frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
# Create treeview
columns = ("Streamer Name", "Status")
tree = ttk.Treeview(frame, columns=columns, show="headings")
tree.heading("Streamer Name", text="Streamer Name", anchor="w")
tree.heading("Status", text="Status", anchor="w")
tree.column("Streamer Name", anchor="w", width=200)
tree.column("Status", anchor="w", width=100)
# Store references to loaded images
tree.image_names = {}
# Add vertical scrollbar
vsb = ttk.Scrollbar(frame, orient="vertical", command=tree.yview)
tree.configure(yscrollcommand=vsb.set)
# Place treeview and scrollbar
tree.grid(row=0, column=0, sticky="nsew")
vsb.grid(row=0, column=1, sticky="ns")
# Example of adding streamer data
update_table()
# Start the main event loop
root.mainloop()
Вот как это выглядит сейчас:

Подробнее здесь: https://stackoverflow.com/questions/786 ... f-treeview