How do I make tkinter frame fill entire canvas and expand together with it? How do I make tkinter frame fill entire canvas and expand together with it? tkinter tkinter

How do I make tkinter frame fill entire canvas and expand together with it?


Thanks, stovfl!Working code in case someone would need it

import tkinter as tkclass FrameWithScrollBar(tk.Frame):    def __init__(self, parent, *args, **kwargs):        super().__init__(parent, *args, **kwargs)        self.canvas = tk.Canvas(self, bg='yellow')        self.frame = tk.Frame(self.canvas, bg='green')        self.scrollbar = tk.Scrollbar(self, orient='vertical',                                command=self.canvas.yview)        self.canvas.configure(yscrollcommand=self.scrollbar.set)        self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)        self.scrollbar.pack(side=tk.RIGHT, fill=tk.BOTH)        self.frame.pack(fill=tk.BOTH, expand=True)        self._frame_id = self.canvas.create_window(                                 self.canvas.winfo_width(), 0,                                 anchor='nw',                                 window=self.frame)        self.frame.bind('<Configure>', self.onFrameConfigure)        self.canvas.bind('<Configure>', self.onCanvasConfigure)    def onFrameConfigure(self, event):               self.canvas.configure(scrollregion=self.frame.bbox('all'))    def onCanvasConfigure(self, event):        width = event.width        self.canvas.itemconfigure(self._frame_id, width=self.canvas.winfo_width())if __name__ == '__main__':    root = tk.Tk()    fws = FrameWithScrollBar(root)    buttons = list()    for i in range(5):        for j in range(25):            button = tk.Button(fws.frame, text='Button ' + str(i) + ','+str(j))            button.grid(row=j, column=i, sticky='wesn')            tk.Grid.columnconfigure(fws.frame, i, weight=1)    fws.pack(expand=True, fill=tk.BOTH)    root.mainloop()