Hej chcialbym stworzyc Frame ze scrollbarem, i w srodku tego Frame'a chcialbym umiescic duzo Buttonow (5 kolumn) w taki sposob zeby ich rozmiar dopasowal sie do rozmiaru okna czyli jak zmienie rozmiar okna to przyciki rowniez sie zmienia tak aby wypelnic cale okno. Oto moj obecny kod ale ani Scrollbar nie dziala ani przyciki nie wypelniaja ladnie calego okna. Co powinienem zmienic?
from tkinter import *
from tkinter import ttk
class MainView(Frame):
def FrameHeight(self, event):
canvas_height = event.height
canvas_width = event.width
self.canvas.itemconfig(self.canvas_frame, height = canvas_height)
self.canvas.itemconfig(self.canvas_frame, width = canvas_width)
def OnFrameConfigure(self, event):
self.canvas.config(scrollregion=self.canvas.bbox("all"))
def __init__(self, *args, **kwargs):
Frame.__init__(self, *args, **kwargs)
self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0, weight=1)
self.canvas = Canvas(self, bg="blue")
self.sensorsStatsFrame = Frame(self.canvas, bg = 'red')
self.canvas.grid_rowconfigure(0, weight=1)
myscrollbar = Scrollbar(self,orient=HORIZONTAL,command=self.canvas.xview)
self.canvas.configure(xscrollcommand=myscrollbar.set)
self.canvas.grid(row=0, sticky="nsew")
myscrollbar.grid(row=1, sticky="nsew")
for thing in range(100):
Button(self.sensorsStatsFrame, text=f'Button {thing} Yo!').grid(row=thing//4, column=thing%5, sticky = 'nsew', pady=10, padx=10)
self.canvas_frame = self.canvas.create_window((0,0),window=self.sensorsStatsFrame,anchor='nw')
self.sensorsStatsFrame.bind("<Configure>", self.OnFrameConfigure)
self.canvas.bind('<Configure>', self.FrameHeight)
if __name__ == "__main__":
root = Tk()
main = MainView(root)
main.pack(fill="both", expand=1)
root.wm_title("Example")
root.mainloop()