0

I'm trying to show a picture using canvas or directly in the tab, but it doesn't work, it doesn't show an error but picture is not displayed, what am I doing wrong? I need to use a vertical scrollbar and add some widgets, I tried using canvas.create_image and labels but pictures aren't being showed This is my main code:

import tkinter as tk
from tkinter import ttk
from Listado import *
import os
class Gui(ttk.Frame):
    def __init__(self):
        self.db_filename = 'Tienda.db'
        # Temp file
        self.temp_dir = "temp"
        dir_list = os.listdir("./")
        for file in dir_list:
            if file.lower() == "temp":
                self.temp_dir = file
                break
            else:
                self.temp_dir = "temp"
        if not os.path.exists(self.temp_dir):
            os.mkdir(self.temp_dir)
        self.create_gui()

def create_gui(self):
    self.main_window = tk.Tk()
    self.main_window.attributes('-fullscreen', True)
    self.screen_width = self.main_window.winfo_screenwidth()
    self.screen_height = self.main_window.winfo_screenheight()
    self.tabs = ttk.Notebook(self.main_window)
    self.tab_admin = ttk.Frame(self.tabs)
    self.tab_listado = ttk.Frame(self.tabs)
    self.tab_carrito = ttk.Frame(self.tabs)
    self.tab_ventas = ttk.Frame(self.tabs)
    self.tab_login = ttk.Frame(self.tabs)
    self.tabs.add(self.tab_admin, text ='Administrar')
    self.tabs.add(self.tab_listado, text ='Ver listado')
    self.tabs.add(self.tab_carrito, text ='Carrito')
    self.tabs.add(self.tab_ventas, text ='Ventas')
    self.tabs.add(self.tab_login, text ='Login')
    self.listado = Listado(self)
    self.tabs.pack(expand = 1, fill ="both")
    self.main_window.mainloop()


if __name__ == "__main__":
    Gui()

This is the file named "Listado"

import tkinter as tk                    
from tkinter import ttk
from tkinter import *
from tkinter import scrolledtext as st
from PIL import Image, ImageTk

class Listado:
    def __init__(self,Gui):
        self.create_gui(Gui)
    
    def create_gui(self,Gui):
        img = Image.open("laptop.png")
        img = img.resize((100, 100), Image.ANTIALIAS)
        img = ImageTk.PhotoImage(img)
    
        container = ttk.Frame(Gui.tab_admin)
        canvas = tk.Canvas(container)
    
        scrollbar = ttk.Scrollbar(container, orient="vertical", command=canvas.yview)
        scrollable_frame = ttk.Frame(canvas)
    
        scrollable_frame.bind(
            "<Configure>",
            lambda e: canvas.configure(
                scrollregion=canvas.bbox("all")
            )
        )
    
        canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
    
        canvas.configure(yscrollcommand=scrollbar.set)
    
        for i in range(200):
            ttk.Label(scrollable_frame, text="Sample scrolling label",image=img).pack()
    
        container.pack(side="left",fill="both",expand=True)
        canvas.pack(side="left", fill="both", expand=True)
        scrollbar.pack(side="right", fill="y")
    
        ttk.Label(scrollable_frame,image=img).pack()
luis713
  • 13
  • 3

0 Answers0