Preview Image

This commit is contained in:
Bluwww 2025-11-26 21:12:09 +07:00
parent c58c0324c0
commit a2497722bd

58
main.py
View File

@ -379,7 +379,7 @@ def dashboard_frame(self):
# Dashboard untuk semua kecuali adminnn # Bagian Search dan Filter
def build_menu_view_tab(self, parent): def build_menu_view_tab(self, parent):
@ -407,3 +407,59 @@ def build_menu_view_tab(self, parent):
self.view_tree.pack(fill='both', expand=True) self.view_tree.pack(fill='both', expand=True)
self.view_tree.bind("<<TreeviewSelect>>", self.on_view_select) self.view_tree.bind("<<TreeviewSelect>>", self.on_view_select)
# Preview Image
ttk.Label(right, text="Preview Item", font=("Arial", 12, "bold")).pack(pady=6)
self.preview_label = ttk.Label(right, text="Pilih menu di kiri")
self.preview_label.pack()
self.preview_img_label = ttk.Label(right)
self.preview_img_label.pack(pady=6)
self.preview_detail = tk.Text(right, width=45, height=12)
self.preview_detail.pack()
self.reload_view_table()
def reload_view_table(self, available_only=False):
s = self.view_search_var.get().strip() if hasattr(self, 'view_search_var') else ""
results = menu_list(search_text=s or None, available_only=available_only)
for r in self.view_tree.get_children():
self.view_tree.delete(r)
for row in results:
mid,nama,kategori,harga,stok,foto,tersedia,item_disc = row
self.view_tree.insert("", tk.END, values=(mid,nama,kategori,harga,stok, "Yes" if tersedia else "No", item_disc))
def reset_view_filters(self):
self.view_search_var.set("")
self.reload_view_table()
def on_view_select(self, event):
sel = self.view_tree.selection()
if not sel:
return
item = self.view_tree.item(sel)['values']
menu_id = item[0]
data = menu_get(menu_id)
if not data:
return
mid,nama,kategori,harga,stok,foto,tersedia,item_disc = data
self.preview_detail.delete('1.0', tk.END)
txt = f"ID: {mid}\nNama: {nama}\nKategori: {kategori}\nHarga: {harga}\nStok: {stok}\nTersedia: {'Yes' if tersedia else 'No'}\nItem Discount: {item_disc}%\nFoto path: {foto}\n"
self.preview_detail.insert(tk.END, txt)
if foto and os.path.exists(foto):
try:
img = Image.open(foto)
img.thumbnail(IMG_PREVIEW_SIZE)
tkimg = ImageTk.PhotoImage(img)
self.img_cache['preview'] = tkimg
self.preview_img_label.config(image=tkimg)
except Exception as e:
self.preview_img_label.config(image='')
else:
self.preview_img_label.config(image='')